File: for_drivers.mlw

package info (click to toggle)
why3 1.8.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 45,020 kB
  • sloc: xml: 185,443; ml: 111,224; ansic: 3,998; sh: 2,578; makefile: 2,568; java: 865; python: 720; javascript: 290; lisp: 205; pascal: 173
file content (19 lines) | stat: -rw-r--r-- 704 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
theory ComputerOfEuclideanDivision

  use int.Int
  use int.EuclideanDivision as ED
  use int.ComputerDivision as CD

  lemma cdiv_cases : forall n d:int [CD.div n d].
    ((n >= 0) -> (d > 0) -> CD.div n d = ED.div n d) /\
    ((n <= 0) -> (d > 0) -> CD.div n d = -(ED.div (-n) d)) /\
    ((n >= 0) -> (d < 0) -> CD.div n d = -(ED.div n (-d))) /\
    ((n <= 0) -> (d < 0) -> CD.div n d = ED.div (-n) (-d))

  lemma cmod_cases : forall n d:int [CD.mod n d].
    ((n >= 0) -> (d > 0) -> CD.mod n d = ED.mod n d) /\
    ((n <= 0) -> (d > 0) -> CD.mod n d = -(ED.mod (-n) d)) /\
    ((n >= 0) -> (d < 0) -> CD.mod n d = (ED.mod n (-d))) /\
    ((n <= 0) -> (d < 0) -> CD.mod n d = -(ED.mod (-n) (-d)))

end