Files
why3/stdlib/for_drivers.mlw
Matteo Manighetti 34c38667a5 Revert "Simplify euclidean to computer division"
This reverts commit 7fc778f1d5.
2023-10-19 12:12:59 +02:00

20 lines
704 B
Plaintext

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