(* =========================== MEREOLOGICAL THEOREMS ========================== *)

(* Specifications: *)
Lemma MereoT0 : forall A B, A ε pt B ⊃ B ε B.
Lemma MereoT1 : forall a A, A ε Kl a ⊃ A ε A.
Lemma MereoT2 : forall a A, A ε Kl a ⊃ ¬forall B, ¬(B ε a).
Lemma MereoT3 : forall A a, A ε Kl a ⊃ forall B, B ε a ⊃ B ε el A.
Lemma MereoT4 : forall A B a, A ε Kl a ⊃ (B ε el A ⊃ ¬forall C D, ¬(C ε a ∧ D ε el C ∧ D ε el B)).
Lemma MereoT5 : forall A, ¬(A ε pt A).
Lemma MereoT6 : forall A a, A ε a ⊃ A ε el A.
Lemma MereoT7 : forall A, A ε A ⊃ A ε el A.
Lemma MereoT8 : forall A a, A ε Kl a ⊃  A ε el A.
Lemma MereoT9 : forall A B, A ε el B ⊃ B ε B.
Lemma MereoT10 : forall A a, A ε a ⊃  A ε Kl A.
Lemma MereoT11 : forall A, A ε A ⊃ A ε Kl A.
Lemma MereoT12 : forall A, A ε A ≡≡ (A ε Kl A).
Lemma MereoT13 : forall A a, A ε a ⊃ Kl a ε Kl a.
Lemma MereoT15 : forall B C, (B ε C ∧ C ε B) ⊃ weak_equality B C.
Lemma MereoT16 : forall (A B C:N)(Phi:Morphism_N_N), (A ε Phi B)
∧ singular_equality B C ⊃ (A ε Phi C).
Lemma MereoT17 : forall A B C, (A ε pt B ∧ singular_equality B C) ⊃ A ε pt C.
Lemma MereoT18 : forall A B C, (A ε el B ∧ singular_equality B C) ⊃ A ε el C.
Lemma MereoT19 : forall A B C, A ε pt B ∧ singular_equality A C ⊃ C ε pt B.
(* Lemma MereoT20 : forall A B C, A ε el B /\ B ε el C -> A ε el C. --> Lemma Transitive_Element_of *)
Lemma MereoT20 : forall A B C, A ε el B ∧ B ε el C ⊃ A ε el C.
(* Lemma MereoT21 : forall A, A ε A -> A ε el A.  --> Lemma Reflexive_Element_of Cf. MereoT7 *)
Lemma MereoT22 : forall A a, A ε a ⊃ A ε el (Kl a).
Lemma MereoT23 : forall A B a, (A ε Kl B ∧ B ε a) ⊃ singular_equality A B.
Lemma MereoT24 : forall A a, A ε Kl a ⊃ singular_equality A (Kl a).
Lemma MereoT25 : forall a, exist_at_least a ≡≡ exist_at_least (Kl a).
(* Theorems 26 and 27 show that in mereology, the class of a and the class of the class of a stand for the same object, which is in contrast with set theory *)
Lemma MereoT26 : forall A a, A ε Kl a ⊃ A ε Kl (Kl a).
Lemma MereoT27 : forall A a, A ε (Kl (Kl a)) ⊃ A ε Kl a.
Lemma MereoT27' : forall A a, A ε Kl (Kl a) ≡≡ (A ε Kl a).
Lemma MereoT28 : ¬forall A a, A ε Kl a.
(* The class generated by the empty name does not exist *)
Lemma MereoT29 : forall A, ¬(A ε Kl empty).
(* identical classes do not yield identical plurals a and b *)
Theorem MereoT30 : forall a b, ((¬forall F, ¬(F ε a)) ∧ (¬forall G, ¬(G ε b)) ∧ weak_equality (el (Kl a))(el (Kl b))) ⊃ forall B, (B ε Kl a ⊃ B ε Kl b).
Lemma MereoT31 : forall A B,  A ε el B ∧ B ε el A ⊃ singular_equality A B.
Lemma MereoT34 : forall A B C a, A ε Kl a ∧ A ε el B ∧ C ε a ⊃ C ε el B.
Lemma MereoT35 : forall A, A ε A ⊃ A ε Kl (el A).
Lemma MereoT36 : forall A B, A ε el B ⊃ B ε Kl (el B).
Lemma MereoT40 : forall A B, (A ε el B) ≡≡ ¬forall a, ¬(B ε (Kl a) ∧ A ε a).
Lemma XIV : forall A a, A ε (Kl a) ⊃ A ε (coll a).
Lemma MereoT42 : forall A B, B ε subcoll A ⊃ B ε el A.
Lemma MereoT43 : forall A B, B ε el A ⊃ B ε subcoll A.
Lemma MereoT44 : forall A B, (B ε el A) ≡≡ (B ε subcoll A).
Lemma Transitive_subcoll : forall A B C, (A ε subcoll B ∧ B ε subcoll C) ⊃ A ε subcoll C.
(********************* De Morgan  ****************************)
(* if A is element of B, then the extension of elements of A is included into the extension of elements of B *)
Lemma MereoT45 : forall A B, A ε el B ⊃ weak_inclusion (el A) (el B). (* TM19 *)
Lemma MereoT46 : forall A a, A ε a ⊃ forall B, (B ε (el A) ⊃ B ε (el (Kl a))). (* TM24 *)
Lemma MereoT47 : forall a b, strong_inclusion a b ⊃ forall C, (C ε a ⊃ forall D, (D ε (el C) ⊃
D ε (el (Kl b)))). (* TM25 *)
Lemma MereoT48 : forall A a, A ε (coll a) ⊃ ¬forall B, ¬(B ε a). (* TM29 *)
Lemma MereoT49 : forall A a, A ε a ⊃ A ε (coll a). (* TM30 *)
Lemma MereoT50 : forall A a, A ε (Kl (coll a)) ⊃ forall B, B ε (el A) ⊃
¬forall C D, ¬(C ε a ∧ D ε (el C) ∧ D ε (el B)). (* TM31 *)
Lemma MereoT51 : forall A a, A ε (Kl (coll a)) ⊃ (A ε (Kl a)). (* TM32 *)
Lemma MereoT52 : forall A a, A ε (Kl a) ⊃ (A ε (Kl (coll a))). (* TM33 *)
Lemma MereoT53 : forall A a, A ε (coll a) ⊃ (A ε el (Kl a)). (* TM34 *)
Lemma MereoT54 : forall a b A, (weak_inclusion a b ∧ A ε Kl a) ⊃ (A ε coll b). (* TM35 *)
Lemma MereoT55 : forall a b, strong_inclusion a b  ⊃ (Kl a) ε el (Kl b). (* TM36 *)
Lemma MereoT56 : forall a b, strong_inclusion a b ⊃ strong_inclusion (el (Kl a)) (el (Kl b)). (* TM37 *)
Lemma XI : forall a b P Q, P ε coll a ∧ a ε b ∧ Q ε el P ⊃ ¬forall C D, ¬(C ε b ∧ C ε el P ∧ D ε el C ∧ D ε el Q).
Lemma XII : forall a b P, P ε coll a ∧ a ε b ⊃ P ε coll b.
Lemma XIII :  forall a P, P ε coll a ⊃ ¬forall C, ¬(C ε a ∧ C ε el P).
End Mereology.