Maram proof files index
module CiseAnalysis use export why3.BuiltIn.BuiltIn use export why3.Bool.Bool use export why3.Unit.Unit use export tree.Tree use export why3.Tuple2.Tuple2 use export int.Int use import map.Map as M use import set.Fset as F use seq.Seq, seq.Mem, seq.Distinct predicate same_ext (m1 m2: 'a -> 'b) = forall x: 'a. m1 x = m2 x val equal_elt (e1 e2 : elt) : bool ensures {result <-> e1 = e2} let ghost predicate state_equality (s1 s2 : state) = same_ext s1.parent s2.parent && equal_elt s1.root s2.root && F.(==) s1.nodes s2.nodes let ghost move_move_analysis (ghost _:()) : (state, state) ensures { match result with | x1, x2 -> state_equality x1 x2 end } = let ghost c1 = any elt in let ghost np1 = any elt in let ghost state1 = any state in let ghost c2 = any elt in let ghost np2 = any elt in let ghost state2 = any state in assume { (F.mem np1 state1.nodes) /\ (F.mem np2 state2.nodes) /\ (F.mem c1 state1.nodes) /\ (F.mem c2 state2.nodes) /\ (not (reachability state1.parent np1 c1)) /\ (not (reachability state2.parent np2 c2)) /\ (c1 <> state1.root) /\ (c2 <> state2.root) /\ (c1 <> np1) /\ (c2 <> np2) /\ state_equality state1 state2 }; move c1 np1 state1; move c2 np2 state1; move c2 np2 state2; move c1 np1 state2; (state1, state2) let ghost remove_remove_analysis (ghost _:()) : (state, state) ensures { match result with | x1, x2 -> state_equality x1 x2 end } = let ghost n1 = any elt in let ghost state1 = any state in let ghost n2 = any elt in let ghost state2 = any state in assume { (F.mem n1 state1.nodes) /\ (F.mem n2 state2.nodes) /\ (forall x. state1.parent x <> n1 ) /\ (forall x. state2.parent x <> n2 ) /\ (n1 <> state1.root) /\ (n2 <> state2.root) /\ state_equality state1 state2 }; remove n2 state1; remove n1 state1; remove n1 state2; remove n2 state2; (state1, state2) let ghost add_add_analysis (ghost _:()) : (state, state) ensures { match result with | x1, x2 -> state_equality x1 x2 end } = let ghost n1 = any elt in let ghost p1 = any elt in let ghost state1 = any state in let ghost n2 = any elt in let ghost p2 = any elt in let ghost state2 = any state in assume { ((not F.mem n1 (nodes state1) /\ F.mem p1 (nodes state1)) /\ not F.mem n2 (nodes state2) /\ F.mem p2 (nodes state2)) /\ state_equality state1 state2 }; add n1 p1 state1; add n2 p2 state1; add n2 p2 state2; add n1 p1 state2; (state1, state2) let ghost remove_move_analysis (ghost _:()) : (state, state) ensures { match result with | x1, x2 -> state_equality x1 x2 end } = let ghost n1 = any elt in let ghost state1 = any state in let ghost c2 = any elt in let ghost np2 = any elt in let ghost state2 = any state in assume { (forall x. state1.parent x <> n1 ) /\ (n1 <> state1.root) /\ (F.mem np2 state2.nodes) /\ (F.mem c2 state2.nodes) /\ (not (reachability state2.parent np2 c2)) /\ (c2 <> state2.root) /\ (c2 <> np2) /\ state_equality state1 state2 }; move c2 np2 state1; remove n1 state1; remove n1 state2; move c2 np2 state2; (state1, state2) let ghost add_move_analysis (ghost _:()) : (state, state) ensures { match result with | x1, x2 -> state_equality x1 x2 end } = let ghost n1 = any elt in let ghost p1 = any elt in let ghost state1 = any state in let ghost c2 = any elt in let ghost np2 = any elt in let ghost state2 = any state in assume { (not F.mem n1 (nodes state1) /\ F.mem p1 (nodes state1)) /\ (F.mem np2 state2.nodes) /\ (F.mem c2 state2.nodes) /\ (not (reachability state2.parent np2 c2)) /\ (not (reachability state1.parent np2 c2)) /\ (c2 <> state2.root) /\ (c2 <> np2) /\ state_equality state1 state2 }; add n1 p1 state1; move c2 np2 state1; move c2 np2 state2; add n1 p1 state2; (state1, state2) let ghost add_remove_analysis (ghost _:()) : (state, state) ensures { match result with | x1, x2 -> state_equality x1 x2 end } = let ghost n1 = any elt in let ghost p1 = any elt in let ghost state1 = any state in let ghost n2 = any elt in let ghost state2 = any state in assume { (not F.mem n1 (nodes state1) /\ F.mem p1 (nodes state1)) /\ (forall x. state2.parent x <> n2 ) /\ (n2 <> state2.root) /\ state_equality state1 state2 }; remove n2 state1; add n1 p1 state1; add n1 p1 state2; remove n2 state2; (state1, state2) end
| Obligations | Alt-Ergo 2.0.0 | CVC4 1.6 | |||
| VC for move_move_analysis | |||||
| split_vc | |||||
| pre_move1 | --- | 0.07 | |||
| pre_move2 | --- | 0.12 | |||
| pre_move3 | Timeout (1s) (obsolete) | 0.09 | |||
| pre_move4 | --- | 0.15 | |||
| pre_move5 | Timeout (1s) (obsolete) | 0.06 | |||
| pre_move1 | Timeout (1s) (obsolete) | 0.20 | |||
| pre_move2 | --- | 0.21 | |||
| pre_move3 | High Failure | Timeout (1s) | |||
| pre_move4 | --- | 0.18 | |||
| pre_move5 | --- | 0.12 | |||
| pre_move1 | --- | 0.19 | |||
| pre_move2 | --- | 0.12 | |||
| pre_move3 | Timeout (1s) (obsolete) | 0.08 | |||
| pre_move4 | Timeout (1s) (obsolete) | 0.07 | |||
| pre_move5 | --- | 0.13 | |||
| pre_move1 | --- | 0.08 | |||
| pre_move2 | --- | 0.15 | |||
| pre_move3 | High Failure | Timeout (1s) | |||
| pre_move4 | --- | 0.08 | |||
| pre_move5 | --- | 0.12 | |||
| postcondition | High Failure | Timeout (1s) | |||
| VC for remove_remove_analysis | |||||
| split_vc | |||||
| pre_remove1 | --- | 0.16 | |||
| pre_remove2 | --- | 0.18 | |||
| pre_remove1 | --- | 0.11 | |||
| pre_remove2 | --- | 0.18 | |||
| pre_remove1 | --- | 0.20 | |||
| pre_remove2 | --- | 0.10 | |||
| pre_remove1 | --- | 0.11 | |||
| pre_remove2 | --- | 0.10 | |||
| postcondition | |||||
| unfold state_equality | |||||
| VC for remove_remove_analysis | --- | --- | |||
| split_vc | |||||
| VC for remove_remove_analysis | --- | 0.11 | |||
| VC for remove_remove_analysis | --- | 0.12 | |||
| VC for remove_remove_analysis | --- | 0.22 | |||
| VC for add_add_analysis | |||||
| split_vc | |||||
| pre_add1 | --- | 0.15 | |||
| pre_add2 | --- | 0.11 | |||
| pre_add1 | High Failure | Timeout (1s) | |||
| pre_add2 | --- | 0.13 | |||
| pre_add1 | Timeout (1s) (obsolete) | 0.09 | |||
| pre_add2 | --- | 0.07 | |||
| pre_add1 | High Failure | Timeout (1s) | |||
| pre_add2 | --- | 0.13 | |||
| postcondition | |||||
| unfold state_equality | |||||
| VC for add_add_analysis | --- | --- | |||
| split_vc | |||||
| VC for add_add_analysis | High Failure | Timeout (1s) | |||
| VC for add_add_analysis | --- | 0.12 | |||
| VC for add_add_analysis | --- | 0.33 | |||
| VC for remove_move_analysis | |||||
| split_vc | |||||
| pre_move1 | |||||
| unfold state_equality | |||||
| pre_move1 | --- | --- | |||
| split_vc | |||||
| pre_move1 | Timeout (1s) (obsolete) | 0.19 | |||
| pre_move2 | --- | 0.20 | |||
| pre_move3 | --- | 0.39 | |||
| pre_move4 | --- | 0.18 | |||
| pre_move5 | --- | 0.09 | |||
| pre_remove1 | High Failure | Timeout (1s) | |||
| pre_remove2 | --- | 0.11 | |||
| pre_remove1 | --- | 0.18 | |||
| pre_remove2 | --- | 0.12 | |||
| pre_move1 | --- | 0.26 | |||
| pre_move2 | High Failure | Timeout (1s) | |||
| pre_move3 | --- | 0.13 | |||
| pre_move4 | --- | 0.12 | |||
| pre_move5 | Timeout (1s) (obsolete) | 0.08 | |||
| postcondition | |||||
| unfold state_equality | |||||
| VC for remove_move_analysis | --- | --- | |||
| split_vc | |||||
| VC for remove_move_analysis | --- | 0.15 | |||
| VC for remove_move_analysis | --- | 0.09 | |||
| VC for remove_move_analysis | --- | 0.14 | |||
| VC for add_move_analysis | |||||
| split_vc | |||||
| pre_add1 | --- | 0.16 | |||
| pre_add2 | --- | 0.09 | |||
| pre_move1 | --- | 0.16 | |||
| pre_move2 | --- | 0.17 | |||
| pre_move3 | High Failure (obsolete) | 0.09 | |||
| pre_move4 | --- | 0.11 | |||
| pre_move5 | --- | 0.10 | |||
| pre_move1 | --- | 0.09 | |||
| pre_move2 | 0.68 (obsolete) | 0.10 | |||
| pre_move3 | --- | 0.09 | |||
| pre_move4 | --- | 0.09 | |||
| pre_move5 | --- | 0.10 | |||
| pre_add1 | --- | 0.20 | |||
| pre_add2 | --- | 0.20 | |||
| postcondition | |||||
| unfold state_equality | |||||
| VC for add_move_analysis | --- | --- | |||
| split_vc | |||||
| VC for add_move_analysis | --- | 0.16 | |||
| VC for add_move_analysis | --- | 0.10 | |||
| VC for add_move_analysis | --- | 0.16 | |||
| VC for add_remove_analysis | --- | --- | |||
| split_vc | |||||
| pre_remove1 | --- | 0.17 | |||
| pre_remove2 | --- | 0.16 | |||
| pre_add1 | --- | 0.14 | |||
| pre_add2 | High Failure | Timeout (1s) | |||
| pre_add1 | --- | 0.14 | |||
| pre_add2 | --- | 0.21 | |||
| pre_remove1 | --- | 0.24 | |||
| pre_remove2 | --- | 0.11 | |||
| postcondition | |||||
| unfold state_equality | |||||
| VC for add_remove_analysis | --- | --- | |||
| split_vc | |||||
| VC for add_remove_analysis | --- | 0.20 | |||
| VC for add_remove_analysis | --- | 0.12 | |||
| VC for add_remove_analysis | High Failure | Timeout (1s) | |||
Generated by why3doc 1.3.1+git