Reordering premises in Invariant theorems

This commit is contained in:
Adam Chlipala 2016-02-15 16:04:40 -05:00
parent 9b40bf78af
commit e669e53157

View file

@ -14,9 +14,9 @@ Definition invariantFor {state} (sys : trsys state) (invariant : state -> Prop)
-> invariant s'. -> invariant s'.
Theorem use_invariant : forall {state} (sys : trsys state) (invariant : state -> Prop) s s', Theorem use_invariant : forall {state} (sys : trsys state) (invariant : state -> Prop) s s',
sys.(Step)^* s s' invariantFor sys invariant
-> sys.(Step)^* s s'
-> sys.(Initial) s -> sys.(Initial) s
-> invariantFor sys invariant
-> invariant s'. -> invariant s'.
Proof. Proof.
firstorder. firstorder.
@ -24,8 +24,8 @@ Qed.
Theorem invariantFor_monotone : forall {state} (sys : trsys state) Theorem invariantFor_monotone : forall {state} (sys : trsys state)
(invariant1 invariant2 : state -> Prop), (invariant1 invariant2 : state -> Prop),
(forall s, invariant1 s -> invariant2 s) invariantFor sys invariant1
-> invariantFor sys invariant1 -> (forall s, invariant1 s -> invariant2 s)
-> invariantFor sys invariant2. -> invariantFor sys invariant2.
Proof. Proof.
unfold invariantFor; intuition eauto. unfold invariantFor; intuition eauto.