X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fdama%2Fpremetric_lattice.ma;h=bfba3710afb881c65bfae772f9977346500ace86;hb=10f29fdd78ee089a9a94446207b543d33d6c851c;hp=61c4b826d7453e9f3785b14a2e9ba139775fac1b;hpb=9791cd146bc0b8df953aee7bb8a3df60553b530c;p=helm.git diff --git a/helm/software/matita/dama/premetric_lattice.ma b/helm/software/matita/dama/premetric_lattice.ma index 61c4b826d..bfba3710a 100644 --- a/helm/software/matita/dama/premetric_lattice.ma +++ b/helm/software/matita/dama/premetric_lattice.ma @@ -12,11 +12,11 @@ (* *) (**************************************************************************) -set "baseuri" "cic:/matita/premetric_lattice/". + include "metric_space.ma". -record premetric_lattice_ (R : ogroup) : Type ≝ { +record premetric_lattice_ (R : todgroup) : Type ≝ { pml_carr:> metric_space R; meet: pml_carr → pml_carr → pml_carr; join: pml_carr → pml_carr → pml_carr @@ -28,7 +28,7 @@ interpretation "valued lattice meet" 'and a b = interpretation "valued lattice join" 'or a b = (cic:/matita/premetric_lattice/join.con _ _ a b). -record premetric_lattice_props (R : ogroup) (ml : premetric_lattice_ R) : Prop ≝ { +record premetric_lattice_props (R : todgroup) (ml : premetric_lattice_ R) : Prop ≝ { prop1a: ∀a : ml.δ (a ∧ a) a ≈ 0; prop1b: ∀a : ml.δ (a ∨ a) a ≈ 0; prop2a: ∀a,b: ml. δ (a ∨ b) (b ∨ a) ≈ 0; @@ -40,21 +40,30 @@ record premetric_lattice_props (R : ogroup) (ml : premetric_lattice_ R) : Prop prop5: ∀a,b,c: ml. δ (a ∨ b) (a ∨ c) + δ (a ∧ b) (a ∧ c) ≤ δ b c }. -record pmlattice (R : ogroup) : Type ≝ { +record pmlattice (R : todgroup) : Type ≝ { carr :> premetric_lattice_ R; ispremetriclattice:> premetric_lattice_props R carr }. include "lattice.ma". -lemma lattice_of_pmlattice: ∀R: ogroup. pmlattice R → lattice. +lemma lattice_of_pmlattice: ∀R: todgroup. pmlattice R → lattice. intros (R pml); apply (mk_lattice (apart_of_metric_space ? pml)); -[apply (join ? pml)|apply (meet ? pml)] -intros (x y z); whd; intro H; whd in H; cases H (LE AP); -[apply (prop2a ? pml pml x y); |apply (prop2b ? pml pml x y); +[apply (join ? pml)|apply (meet ? pml) +|3,4,5,6,7,8,9,10: intros (x y z); whd; intro H; whd in H; cases H (LE AP);] +[apply (prop1b ? pml pml x); |apply (prop1a ? pml pml x); +|apply (prop2a ? pml pml x y); |apply (prop2b ? pml pml x y); |apply (prop3a ? pml pml x y z);|apply (prop3b ? pml pml x y z); |apply (prop4a ? pml pml x y); |apply (prop4b ? pml pml x y);] -apply ap_symmetric; assumption; +try (apply ap_symmetric; assumption); intros 4 (x y z H); change with (0 < (δ y z)); +[ change in H with (0 < δ (x ∨ y) (x ∨ z)); + apply (lt_le_transitive ???? H); + apply (le0plus_le ???? (mpositive ? pml ??) (prop5 ? pml pml x y z)); +| change in H with (0 < δ (x ∧ y) (x ∧ z)); + apply (lt_le_transitive ???? H); + apply (le0plus_le ???? (mpositive ? pml (x∨y) (x∨z))); + apply (le_rewl ??? ? (plus_comm ???)); + apply (prop5 ? pml pml);] qed. coercion cic:/matita/premetric_lattice/lattice_of_pmlattice.con. \ No newline at end of file