]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/dama/lattice.ma
excedence -> excess
[helm.git] / helm / software / matita / dama / lattice.ma
index 46662b5881f8990bd9c4e7d77d482a265b993c8a..768c86df1c2af47785bf08b8a762524e72be9426 100644 (file)
@@ -14,7 +14,7 @@
 
 set "baseuri" "cic:/matita/lattice/".
 
-include "excedence.ma".
+include "excess.ma".
 
 record lattice : Type ≝ {
   l_carr:> apartness;
@@ -40,8 +40,8 @@ interpretation "Lattice join" 'or a b =
 
 definition excl ≝ λl:lattice.λa,b:l.a # (a ∧ b).
 
-lemma excedence_of_lattice: lattice → excedence.
-intro l; apply (mk_excedence l (excl l));
+lemma excess_of_lattice: lattice → excess.
+intro l; apply (mk_excess l (excl l));
 [ intro x; unfold; intro H; unfold in H; apply (ap_coreflexive l x);
   apply (ap_rewr ??? (x∧x) (meet_refl l x)); assumption;
 | intros 3 (x y z); unfold excl; intro H;
@@ -55,4 +55,33 @@ intro l; apply (mk_excedence l (excl l));
   assumption]
 qed.    
 
-coercion cic:/matita/lattice/excedence_of_lattice.con.
\ No newline at end of file
+coercion cic:/matita/lattice/excess_of_lattice.con.
+
+lemma feq_ml: ∀ml:lattice.∀a,b,c:ml. a ≈ b → (c ∧ a) ≈ (c ∧ b).
+intros (l a b c H); unfold eq in H ⊢ %; unfold Not in H ⊢ %;
+intro H1; apply H; clear H; apply (strong_extm ???? H1);
+qed.
+
+lemma feq_jl: ∀ml:lattice.∀a,b,c:ml. a ≈ b → (c ∨ a) ≈ (c ∨ b).
+intros (l a b c H); unfold eq in H ⊢ %; unfold Not in H ⊢ %;
+intro H1; apply H; clear H; apply (strong_extj ???? H1);
+qed.
+
+lemma le_to_eqm: ∀ml:lattice.∀a,b:ml. a ≤ b → a ≈ (a ∧ b).
+intros (l a b H); 
+  unfold le in H; unfold excess_of_lattice in H;
+  unfold excl in H; simplify in H; 
+unfold eq; assumption;
+qed.
+
+lemma le_to_eqj: ∀ml:lattice.∀a,b:ml. a ≤ b → b ≈ (a ∨ b).
+intros (l a b H); lapply (le_to_eqm ??? H) as H1;
+lapply (feq_jl ??? b H1) as H2;
+apply (Eq≈ ?? (join_comm ???));
+apply (Eq≈ (b∨a∧b) ? H2); clear H1 H2 H;
+apply (Eq≈ (b∨(b∧a)) ? (feq_jl ???? (meet_comm ???)));
+apply eq_sym; apply absorbjm;
+qed.
+
+
+