proposition: Theorem InState : forall (S : State) (L : list rNat), (forall a b : rZ, In (a, b) S -> In (valRz a) L /\ In (valRz b) L) -> forall a b : rZ, eqStateRz S a b -> a <> b -> ~ contradictory S -> In (valRz a) L /\ In (valRz b) L.
proof: Proof. intros S L H' a b H'0; generalize H'; Elimc H'0; clear H' S a b; auto with stalmarck. intros a S H' H'0; case H'0; auto with stalmarck. intros a b S H' H'0 H'1 H'2 H'3. repeat rewrite valRzComp; auto with stalmarck. apply H'0; auto with stalmarck. red in |- *; intros H'4; case H'2; auto with stalmarck. rewrite H'4; auto with stalmarck. intros a b S H' H'0 H'1 H'2 H'3. apply andSym; auto with stalmarck. intros a b c S H' H'0 H'1 H'2 H'3 H'4 H'5; split. case (rZDec a b); intros Eqab. rewrite Eqab; auto with stalmarck. Elimc H'2; [ intros H'2 H'6; apply H'2 | idtac | idtac | idtac ]; auto with stalmarck. rewrite <- Eqab; auto with stalmarck. Elimc H'0; [ intros H'0 H'6; apply H'0 | idtac | idtac | idtac ]; auto with stalmarck. case (rZDec b c); intros Eqbc. rewrite <- Eqbc; auto with stalmarck. Elimc H'0; [ intros H'0 H'6; apply H'6 | idtac | idtac | idtac ]; auto with stalmarck. rewrite Eqbc; auto with stalmarck. Elimc H'2; [ intros H'2 H'6; apply H'6 | idtac | idtac | idtac ]; auto with stalmarck. intros a b c S H' H'0 H'1 H'2 H'3; case H'3; auto with stalmarck. red in |- *. exists a; auto with stalmarck. Qed.
imports: Stalmarck(stalmarck) Stalmarck(ltState)