Library models
verified partial models proving the independence of all axioms but A3
Module A1.
CoInductive X := T | U | D.
Notation "1" := U.
Notation "2" := D.
Definition mult x y :=
match x,y with
| 1,1 => 1
| 2,2 => T
| 2,_
| _,2 => 2
| _,_ => T
end.
Infix "*" := mult.
Definition inter x y :=
match x,y with
| T,_ => y
| _,T => x
| 1,_ => y
| _,1 => x
| 2,2 => T
end.
Infix "^" := inter.
Definition conv (x: X) := x.
Notation "x `" := (conv x) (at level 20).
Lemma iA: ~forall a b c, a^(b^c) = (a^b)^c.
Proof. intro H; discriminate (H 1 2 2). Qed.
Lemma iC: forall a b, a^b = b^a.
Proof. now destruct a; destruct b. Qed.
Lemma ixT: forall a, a^T = a.
Proof. now destruct a. Qed.
Lemma mA: forall a b c, a*(b*c) = (a*b)*c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma mx1: forall a, a*1 = a.
Proof. now destruct a. Qed.
Lemma cI: forall a, a``= a.
Proof. now destruct a. Qed.
Lemma ci: forall a b, (a ^ b)`= a` ^ b`.
Proof. now destruct a; destruct b. Qed.
Lemma cm: forall a b, (a * b)`= b` * a`.
Proof. now destruct a; destruct b. Qed.
Lemma uu: 1 ^ 1 = 1.
Proof. reflexivity. Qed.
Lemma mT: forall a, a*T = (1^(a*T))*T.
Proof. now destruct a. Qed.
Lemma mi1: forall a b, (1^a)*b = ((1^a)*T)^b.
Proof. now destruct a; destruct b. Qed.
Lemma i1m: forall a b, 1^(a*b) = 1 ^ ((a ^ b`)*T).
Proof. now destruct a; destruct b. Qed.
End A1.
Module A2.
CoInductive X := T | U | D.
Notation "1" := U.
Notation "2" := D.
Definition mult x y :=
match x,y with
| 1,1 => 1
| 1,2
| 2,1 => 2
| _,_ => T
end.
Infix "*" := mult.
Definition inter x y :=
match x,y with
| T,_ => y
| _,_ => x
end.
Infix "^" := inter.
Definition conv (x: X) := x.
Notation "x `" := (conv x) (at level 20).
Lemma iA: forall a b c, a^(b^c) = (a^b)^c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma iC: ~forall a b, a^b = b^a.
Proof. intro H. discriminate (H 1 2). Qed.
Lemma ixT: forall a, a^T = a.
Proof. now destruct a. Qed.
Lemma mA: forall a b c, a*(b*c) = (a*b)*c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma mx1: forall a, a*1 = a.
Proof. now destruct a. Qed.
Lemma cI: forall a, a``= a.
Proof. now destruct a. Qed.
Lemma ci: forall a b, (a ^ b)`= a` ^ b`.
Proof. now destruct a; destruct b. Qed.
Lemma cm: forall a b, (a * b)`= b` * a`.
Proof. now destruct a; destruct b. Qed.
Lemma uu: 1 ^ 1 = 1.
Proof. reflexivity. Qed.
Lemma mT: forall a, a*T = (1^(a*T))*T.
Proof. now destruct a. Qed.
Lemma mi1: forall a b, (1^a)*b = ((1^a)*T)^b.
Proof. now destruct a; destruct b. Qed.
Lemma i1m: forall a b, 1^(a*b) = 1 ^ ((a ^ b`)*T).
Proof. now destruct a; destruct b. Qed.
End A2.
A3 is a consequence of A9 and A12 (plus symmetries)
Module A4.
CoInductive X := T | U | D.
Notation "1" := U.
Notation "2" := D.
Definition mult x y :=
match x,y with
| 1,1
| 2,2 => 1
| 2,_
| _,2 => 2
| _,_ => T
end.
Infix "*" := mult.
Definition inter x y :=
match x,y with
| T,_ => y
| _,T => x
| 1,_ => y
| _,1 => x
| 2,2 => 1
end.
Infix "^" := inter.
Definition conv (x: X) := x.
Notation "x `" := (conv x) (at level 20).
Lemma iA: forall a b c, a^(b^c) = (a^b)^c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma iC: forall a b, a^b = b^a.
Proof. now destruct a; destruct b. Qed.
Lemma ixT: forall a, a^T = a.
Proof. now destruct a. Qed.
Lemma mA: ~forall a b c, a*(b*c) = (a*b)*c.
Proof. intro H; discriminate (H T 2 2). Qed.
Lemma mx1: forall a, a*1 = a.
Proof. now destruct a. Qed.
Lemma cI: forall a, a``= a.
Proof. now destruct a. Qed.
Lemma ci: forall a b, (a ^ b)`= a` ^ b`.
Proof. now destruct a; destruct b. Qed.
Lemma cm: forall a b, (a * b)`= b` * a`.
Proof. now destruct a; destruct b. Qed.
Lemma uu: 1 ^ 1 = 1.
Proof. reflexivity. Qed.
Lemma mT: forall a, a*T = (1^(a*T))*T.
Proof. now destruct a. Qed.
Lemma mi1: forall a b, (1^a)*b = ((1^a)*T)^b.
Proof. now destruct a; destruct b. Qed.
Lemma i1m: forall a b, 1^(a*b) = 1 ^ ((a ^ b`)*T).
Proof. now destruct a; destruct b. Qed.
End A4.
Module A5.
CoInductive X := T | U.
Notation "1" := U.
Definition mult (x y: X) :=
match x,y with
| _,_ => 1
end.
Infix "*" := mult.
Definition inter x y :=
match x,y with
| T,T => T
| _,_ => 1
end.
Infix "^" := inter.
Definition conv (x: X) := x.
Notation "x `" := (conv x) (at level 20).
Lemma iA: forall a b c, a^(b^c) = (a^b)^c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma iC: forall a b, a^b = b^a.
Proof. now destruct a; destruct b. Qed.
Lemma ixT: forall a, T^a = a.
Proof. now destruct a. Qed.
Lemma mA: forall a b c, a*(b*c) = (a*b)*c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma mx1: ~forall a, a*1 = a.
Proof. intro H. discriminate (H T). Qed.
Lemma cI: forall a, a``= a.
Proof. now destruct a. Qed.
Lemma ci: forall a b, (a ^ b)`= a` ^ b`.
Proof. now destruct a; destruct b. Qed.
Lemma cm: forall a b, (a * b)`= b` * a`.
Proof. now destruct a; destruct b. Qed.
Lemma uu: 1 ^ 1 = 1.
Proof. reflexivity. Qed.
Lemma mT: forall a, a*T = (1^(a*T))*T.
Proof. now destruct a. Qed.
Lemma mi1: forall a b, (1^a)*b = ((1^a)*T)^b.
Proof. now destruct a; destruct b. Qed.
Lemma i1m: forall a b, 1^(a*b) = 1 ^ ((a ^ b`)*T).
Proof. now destruct a; destruct b. Qed.
End A5.
Module A6.
CoInductive X := T | U.
Notation "1" := U.
Definition mult x y :=
match x,y with
| 1,1 => 1
| _,_ => T
end.
Infix "*" := mult.
Definition inter x y :=
match x,y with
| T,T => T
| _,_ => 1
end.
Infix "^" := inter.
Definition conv (x: X) := T.
Notation "x `" := (conv x) (at level 20).
Lemma iA: forall a b c, a^(b^c) = (a^b)^c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma iC: forall a b, a^b = b^a.
Proof. now destruct a; destruct b. Qed.
Lemma ixT: forall a, T^a = a.
Proof. now destruct a. Qed.
Lemma mA: forall a b c, a*(b*c) = (a*b)*c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma mx1: forall a, a*1 = a.
Proof. now destruct a. Qed.
Lemma cI: ~forall a, a``= a.
Proof. intro H. discriminate (H 1). Qed.
Lemma ci: forall a b, (a ^ b)`= a` ^ b`.
Proof. now destruct a; destruct b. Qed.
Lemma cm: forall a b, (a * b)`= b` * a`.
Proof. now destruct a; destruct b. Qed.
Lemma uu: 1 ^ 1 = 1.
Proof. reflexivity. Qed.
Lemma mT: forall a, a*T = (1^(a*T))*T.
Proof. now destruct a. Qed.
Lemma mi1: forall a b, (1^a)*b = ((1^a)*T)^b.
Proof. now destruct a; destruct b. Qed.
Lemma i1m: forall a b, 1^(a*b) = 1 ^ ((a ^ b`)*T).
Proof. now destruct a; destruct b. Qed.
End A6.
Module A7.
CoInductive X := T | U | D | E.
Notation "1" := U.
Notation "2" := D.
Notation "3" := E.
Definition mult x y :=
match x,y with
| _,1 => x
| 1,_ => y
| _,_ => T
end.
Infix "*" := mult.
Definition inter x y :=
match x,y with
| T,_ => y
| _,T => x
| 2,3
| 3,2 => 2
| 3,3 => T
| _,_ => 1
end.
Infix "^" := inter.
Definition conv x :=
match x with
| 3 => 2
| 2 => 3
| x => x
end.
Notation "x `" := (conv x) (at level 20).
Lemma iA: forall a b c, a^(b^c) = (a^b)^c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma iC: forall a b, a^b = b^a.
Proof. now destruct a; destruct b. Qed.
Lemma ixT: forall a, a^T = a.
Proof. now destruct a. Qed.
Lemma mA: forall a b c, a*(b*c) = (a*b)*c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma mx1: forall a, a*1 = a.
Proof. now destruct a. Qed.
Lemma cI: forall a, a``= a.
Proof. now destruct a. Qed.
Lemma ci: ~forall a b, (a ^ b)`= a` ^ b`.
Proof. intro H. discriminate (H 2 2). Qed.
Lemma cm: forall a b, (a * b)`= b` * a`.
Proof. now destruct a; destruct b. Qed.
Lemma uu: 1 ^ 1 = 1.
Proof. reflexivity. Qed.
Lemma mT: forall a, a*T = (1^(a*T))*T.
Proof. now destruct a. Qed.
Lemma mi1: forall a b, (1^a)*b = ((1^a)*T)^b.
Proof. now destruct a; destruct b. Qed.
Lemma i1m: forall a b, 1^(a*b) = 1 ^ ((a ^ b`)*T).
Proof. now destruct a; destruct b. Qed.
End A7.
Module A8.
CoInductive X := T | U | D.
Notation "1" := U.
Notation "2" := D.
Definition mult x y :=
match x,y with
| _,T => T
| _,1 => x
| _,_ => 2
end.
Infix "*" := mult.
Definition inter x y :=
match x,y with
| 1,_
| _,1 => 1
| T,T
| 2,2 => T
|_,_ => 2
end.
Infix "^" := inter.
Definition conv (x: X) := x.
Notation "x `" := (conv x) (at level 20).
Lemma iA: forall a b c, a^(b^c) = (a^b)^c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma iC: forall a b, a^b = b^a.
Proof. now destruct a; destruct b. Qed.
Lemma ixT: forall a, a^T = a.
Proof. now destruct a. Qed.
Lemma mA: forall a b c, a*(b*c) = (a*b)*c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma mx1: forall a, a*1 = a.
Proof. now destruct a. Qed.
Lemma cI: forall a, a``= a.
Proof. now destruct a. Qed.
Lemma ci: forall a b, (a ^ b)`= a` ^ b`.
Proof. now destruct a; destruct b. Qed.
Lemma cm: ~forall a b, (a * b)`= b` * a`.
Proof. intro H. discriminate (H T 2). Qed.
Lemma uu: 1 ^ 1 = 1.
Proof. reflexivity. Qed.
Lemma mT: forall a, a*T = (1^(a*T))*T.
Proof. now destruct a. Qed.
Lemma mi1: forall a b, (1^a)*b = ((1^a)*T)^b.
Proof. now destruct a; destruct b. Qed.
Lemma i1m: forall a b, 1^(a*b) = 1 ^ ((a ^ b`)*T).
Proof. now destruct a; destruct b. Qed.
End A8.
Module A9.
CoInductive X := T | U.
Notation "1" := U.
Definition mult x y :=
match x,y with
| 1,_ => y
| _,1 => x
| T,T => 1
end.
Infix "*" := mult.
Definition inter x y :=
match x,y with
| T,_ => y
| _,T => x
| 1,1 => T
end.
Infix "^" := inter.
Definition conv (x: X) := x.
Notation "x `" := (conv x) (at level 20).
Lemma iA: forall a b c, a^(b^c) = (a^b)^c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma iC: forall a b, a^b = b^a.
Proof. now destruct a; destruct b. Qed.
Lemma ixT: forall a, a^T = a.
Proof. now destruct a. Qed.
Lemma mA: forall a b c, a*(b*c) = (a*b)*c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma mx1: forall a, a*1 = a.
Proof. now destruct a. Qed.
Lemma cI: forall a, a``= a.
Proof. now destruct a. Qed.
Lemma ci: forall a b, (a ^ b)`= a` ^ b`.
Proof. now destruct a; destruct b. Qed.
Lemma cm: forall a b, (a * b)`= b` * a`.
Proof. now destruct a; destruct b. Qed.
Lemma uu: 1 ^ 1 <> 1.
Proof. discriminate. Qed.
Lemma mT: forall a, a*T = (1^(a*T))*T.
Proof. now destruct a. Qed.
Lemma mi1: forall a b, (1^a)*b = ((1^a)*T)^b.
Proof. now destruct a; destruct b. Qed.
Lemma i1m: forall a b, 1^(a*b) = 1 ^ ((a ^ b`)*T).
Proof. now destruct a; destruct b. Qed.
End A9.
Module A10.
CoInductive X := T | U | D | E.
Notation "1" := U.
Notation "2" := D.
Notation "3" := E.
Definition mult x y :=
match x,y with
| 1,_ => y
| _,1 => x
| 3,3 => T
| _,_ => 2
end.
Infix "*" := mult.
Definition inter x y :=
match x,y with
| T,_ => y
| _,T => x
| 2,_ => 2
| _,2 => 2
| 3,3 => T
| _,_ => 1
end.
Infix "^" := inter.
Definition conv (x: X) := x.
Notation "x `" := (conv x) (at level 20).
Lemma iA: forall a b c, a^(b^c) = (a^b)^c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma iC: forall a b, a^b = b^a.
Proof. now destruct a; destruct b. Qed.
Lemma ixT: forall a, a^T = a.
Proof. now destruct a. Qed.
Lemma mA: forall a b c, a*(b*c) = (a*b)*c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma mx1: forall a, a*1 = a.
Proof. now destruct a. Qed.
Lemma cI: forall a, a``= a.
Proof. now destruct a. Qed.
Lemma ci: forall a b, (a ^ b)`= a` ^ b`.
Proof. now destruct a; destruct b. Qed.
Lemma cm: forall a b, (a * b)`= b` * a`.
Proof. now destruct a; destruct b. Qed.
Lemma uu: 1 ^ 1 = 1.
Proof. reflexivity. Qed.
Lemma mT: forall a, a*T = (1^(a*T))*T.
Proof. now destruct a. Qed.
Lemma mi1: forall a b, (1^a)*b = ((1^a)*T)^b.
Proof. now destruct a; destruct b. Qed.
Lemma i1m: ~forall a b, 1^(a*b) = 1 ^ ((a ^ b`)*T).
Proof. intro H. discriminate (H 3 3). Qed.
End A10.
Module A11.
CoInductive X := T | U.
Notation "1" := U.
Definition mult x y :=
match x,y with
| 1,_ => y
| _,1 => x
| T,T => 1
end.
Infix "*" := mult.
Definition inter x y :=
match x,y with
| T,_ => y
| _,T => x
| 1,1 => 1
end.
Infix "^" := inter.
Definition conv (x: X) := x.
Notation "x `" := (conv x) (at level 20).
Lemma iA: forall a b c, a^(b^c) = (a^b)^c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma iC: forall a b, a^b = b^a.
Proof. now destruct a; destruct b. Qed.
Lemma ixT: forall a, a^T = a.
Proof. now destruct a. Qed.
Lemma mA: forall a b c, a*(b*c) = (a*b)*c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma mx1: forall a, a*1 = a.
Proof. now destruct a. Qed.
Lemma cI: forall a, a``= a.
Proof. now destruct a. Qed.
Lemma ci: forall a b, (a ^ b)`= a` ^ b`.
Proof. now destruct a; destruct b. Qed.
Lemma cm: forall a b, (a * b)`= b` * a`.
Proof. now destruct a; destruct b. Qed.
Lemma uu: 1 ^ 1 = 1.
Proof. reflexivity. Qed.
Lemma mT: ~forall a, a*T = (1^(a*T))*T.
Proof. intro H. discriminate (H T). Qed.
Lemma mi1: forall a b, (1^a)*b = ((1^a)*T)^b.
Proof. now destruct a; destruct b. Qed.
Lemma i1m: forall a b, 1^(a*b) = 1 ^ ((a ^ b`)*T).
Proof. now destruct a; destruct b. Qed.
End A11.
Module A12.
CoInductive X := T | U | D.
Notation "1" := U.
Notation "2" := D.
Definition mult x y :=
match x,y with
| 1,_ => y
| _,1 => x
| T,T => T
| 2,2 => T
| _,_ => 2
end.
Infix "*" := mult.
Definition inter x y :=
match x,y with
| T,_ => y
| _,T => x
| 1,1 => 1
| 2,2 => 1
| _,_ => 2
end.
Infix "^" := inter.
Definition conv (x: X) := x.
Notation "x `" := (conv x) (at level 20).
Lemma iA: forall a b c, a^(b^c) = (a^b)^c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma iC: forall a b, a^b = b^a.
Proof. now destruct a; destruct b. Qed.
Lemma ixT: forall a, a^T = a.
Proof. now destruct a. Qed.
Lemma mA: forall a b c, a*(b*c) = (a*b)*c.
Proof. now destruct a; destruct b; destruct c. Qed.
Lemma mx1: forall a, a*1 = a.
Proof. now destruct a. Qed.
Lemma cI: forall a, a``= a.
Proof. now destruct a. Qed.
Lemma ci: forall a b, (a ^ b)`= a` ^ b`.
Proof. now destruct a; destruct b. Qed.
Lemma cm: forall a b, (a * b)`= b` * a`.
Proof. now destruct a; destruct b. Qed.
Lemma uu: 1 ^ 1 = 1.
Proof. reflexivity. Qed.
Lemma mT: forall a, a*T = (1^(a*T))*T.
Proof. now destruct a. Qed.
Lemma mi1: ~forall a b, (1^a)*b = ((1^a)*T)^b.
Proof. intro H. discriminate (H 2 2). Qed.
Lemma i1m: forall a b, 1^(a*b) = 1 ^ ((a ^ b`)*T).
Proof. now destruct a; destruct b. Qed.
End A12.