Commit a7ccb077 authored by MARCHE Claude's avatar MARCHE Claude

option for displaying labels

parent 988ea15a
theory FSet
type elt
type t
logic single elt : t
logic union t t : t
logic mem elt t
(* triggers needed by Alt-Ergo but not Simplify, Z3 or CVC3 *)
axiom Mem_single : forall x y:elt [mem x (single y)].
mem x (single y) <-> x=y
axiom Mem_union : forall x:elt, s1 s2:t [mem x (union s1 s2)].
mem x (union s1 s2) <-> mem x s1 or mem x s2
end
theory Switch
(* useless
type enum_POSITION = Normal | Reverse | Void
*)
use import int.Int
logic in_1_3 (x:int) = 1 <= x <= 3
clone import FSet as S with type elt = int
logic f2 (m1:int) (m2:int) (m3:int) =
"`estimate preconditions in previous components'"
in_1_3 m1 and in_1_3 m2 and in_1_3 m3
logic f3 (m1:int) (m2:int) (m3:int) =
"`estimate preconditions in this component'"
in_1_3 m1 and in_1_3 m2 and in_1_3 m3 and
"`Local hypotheses'"
not (m1 = 2) and m1 = 1 and m2 = 2
logic f4 (m1:int) (m2:int) (m3:int) =
"`Check that the invariant (pos$1 = pos & pos$1 = pos) is preserved by the operation - ref 4.4, 5.5'" true
logic f5 (m1:int) (m2:int) (m3:int) =
(mem 1 (union (union (single m1) (single m2)) (single m3)) and
not 2 = m1 and not 2 = m2 and not 2 = m3 and
3 = 1)
or
(mem 2 (union (union (single m1) (single m2)) (single m3)) and
not 1 = m1 and not 1 = m2 and not 1 = m3 and
3=2)
or
((mem 1 (union (union (single m1) (single m2)) (single m3)) ->
mem 2 (union (union (single m1) (single m2)) (single m3))) and
(mem 2 (union (union (single m1) (single m2)) (single m3)) ->
mem 1 (union (union (single m1) (single m2)) (single m3))))
goal estimate1 : forall m1 m2 m3: int (* * POSITION *).
f2 m1 m2 m3 and f3 m1 m2 m3 -> f5 m1 m2 m3
logic f6 (m1:int) (m2:int) (m3:int) =
"`estimate preconditions in this component'"
in_1_3 m1 and in_1_3 m2 and in_1_3 m3 and
"`Local hypotheses'"
not(m1 = 2) and m1 = 1 and m3 = 2
goal estimate2 : forall m1 m2 m3: int (* * POSITION *).
f2 m1 m2 m3 and f6 m1 m2 m3 -> f5 m1 m2 m3
end
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment