X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=inline;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2Fformal_topology%2Foverlap%2Fo-algebra.ma;h=838876f93f8bef90fbe7aeb0139566863d6e1a6e;hb=7db606e36d5c17681a62cf5186bafde65cbfa3db;hp=10f50358103e04fce97ba83db0c3340c6de9f63f;hpb=33fbecf99c187fb4fc84a68ee9f479da046e9df9;p=helm.git diff --git a/helm/software/matita/contribs/formal_topology/overlap/o-algebra.ma b/helm/software/matita/contribs/formal_topology/overlap/o-algebra.ma index 10f503581..838876f93 100644 --- a/helm/software/matita/contribs/formal_topology/overlap/o-algebra.ma +++ b/helm/software/matita/contribs/formal_topology/overlap/o-algebra.ma @@ -51,31 +51,28 @@ interpretation "unary morphism1 comprehension with proof" 'comprehension_by s \e (* per il set-indexing vedere capitolo BPTools (foundational tools), Sect. 0.3.4 complete lattices, Definizione 0.9 *) (* USARE L'ESISTENZIALE DEBOLE *) -(*alias symbol "comprehension_by" = "unary morphism comprehension with proof".*) record OAlgebra : Type2 := { oa_P :> SET1; - oa_leq : binary_morphism1 oa_P oa_P CPROP; (* CPROP is setoid1, CPROP importante che sia small *) + oa_leq : binary_morphism1 oa_P oa_P CPROP; oa_overlap: binary_morphism1 oa_P oa_P CPROP; - oa_meet: ∀I:SET.unary_morphism2 (arrows2 SET1 I oa_P) oa_P; - oa_join: ∀I:SET.unary_morphism2 (arrows2 SET1 I oa_P) oa_P; + oa_meet: ∀I:SET.unary_morphism2 (I ⇒ oa_P) oa_P; + oa_join: ∀I:SET.unary_morphism2 (I ⇒ oa_P) oa_P; oa_one: oa_P; oa_zero: oa_P; oa_leq_refl: ∀a:oa_P. oa_leq a a; oa_leq_antisym: ∀a,b:oa_P.oa_leq a b → oa_leq b a → a = b; oa_leq_trans: ∀a,b,c:oa_P.oa_leq a b → oa_leq b c → oa_leq a c; oa_overlap_sym: ∀a,b:oa_P.oa_overlap a b → oa_overlap b a; - (* Errore: = in oa_meet_inf e oa_join_sup *) - oa_meet_inf: ∀I.∀p_i.∀p:oa_P.oa_leq p (oa_meet I p_i) → ∀i:I.oa_leq p (p_i i); - oa_join_sup: ∀I.∀p_i.∀p:oa_P.oa_leq (oa_join I p_i) p → ∀i:I.oa_leq (p_i i) p; + oa_meet_inf: ∀I:SET.∀p_i:I ⇒ oa_P.∀p:oa_P.oa_leq p (oa_meet I p_i) = ∀i:I.oa_leq p (p_i i); + oa_join_sup: ∀I:SET.∀p_i:I ⇒ oa_P.∀p:oa_P.oa_leq (oa_join I p_i) p = ∀i:I.oa_leq (p_i i) p; oa_zero_bot: ∀p:oa_P.oa_leq oa_zero p; oa_one_top: ∀p:oa_P.oa_leq p oa_one; oa_overlap_preserves_meet_: ∀p,q:oa_P.oa_overlap p q → oa_overlap p (oa_meet ? { x ∈ BOOL | match x with [ true ⇒ p | false ⇒ q ] | IF_THEN_ELSE_p oa_P p q }); - (* ⇔ deve essere =, l'esiste debole *) oa_join_split: - ∀I:SET.∀p.∀q:arrows2 SET1 I oa_P. - oa_overlap p (oa_join I q) ⇔ ∃i:carr I.oa_overlap p (q i); + ∀I:SET.∀p.∀q:I ⇒ oa_P. + oa_overlap p (oa_join I q) = ∃i:I.oa_overlap p (q i); (*oa_base : setoid; 1) enum non e' il nome giusto perche' non e' suriettiva 2) manca (vedere altro capitolo) la "suriettivita'" come immagine di insiemi di oa_base @@ -97,16 +94,8 @@ non associative with precedence 50 for @{ 'oa_meet $p }. notation < "hovbox(mstyle scriptlevel 1 scriptsizemultiplier 1.7 (∧) \below (ident i ∈  I) break term 90 p)" non associative with precedence 50 for @{ 'oa_meet_mk (λ${ident i}:$I.$p) }. -(* -notation < "hovbox(a ∧ b)" left associative with precedence 35 -for @{ 'oa_meet_mk (λ${ident i}:$_.match $i with [ true ⇒ $a | false ⇒ $b ]) }. -*) notation > "hovbox(∧ f)" non associative with precedence 60 for @{ 'oa_meet $f }. -(* -notation > "hovbox(a ∧ b)" left associative with precedence 50 -for @{ 'oa_meet (mk_unary_morphism BOOL ? (λx__:bool.match x__ with [ true ⇒ $a | false ⇒ $b ]) (IF_THEN_ELSE_p ? $a $b)) }. -*) interpretation "o-algebra meet" 'oa_meet f = (fun12 __ (oa_meet __) f). interpretation "o-algebra meet with explicit function" 'oa_meet_mk f =