changeset 1281:437e48221ed5

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 06 Apr 2023 14:04:35 +0900
parents a496dbb74a5f
children dc5aaf39f27d
files src/BAlgebra.agda
diffstat 1 files changed, 28 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/BAlgebra.agda	Thu Apr 06 11:50:41 2023 +0900
+++ b/src/BAlgebra.agda	Thu Apr 06 14:04:35 2023 +0900
@@ -168,19 +168,39 @@
 HODBA : (P : HOD) → BooleanAlgebra (PowerP P)
 HODBA P = record { _=b=_ = λ x y → hod x ≡ hod y ; b1 = ⟦ P , (λ x → x) ⟧   ; b0 = ⟦ od∅ , (λ x →  ⊥-elim (¬x<0 x)) ⟧ 
   ; -_ = λ x → ⟦  P \ hod x , proj1 ⟧
-  ; _+_ = λ x y → ⟦ hod x ∪ hod y , ?  ⟧ ; _x_ = λ x y → ⟦ hod x ∩ hod y , (λ lt → x⊆P x (proj1 lt))  ⟧ 
+  ; _+_ = λ x y → ⟦ hod x ∪ hod y , ba00 x y ⟧ ; _x_ = λ x y → ⟦ hod x ∩ hod y , (λ lt → x⊆P x (proj1 lt))  ⟧ 
    ; isBooleanAlgebra = record {
-       +-assoc = λ {a} {b} {c} → ==→o≡ record { eq→ = ? ; eq← = ?  }
+       +-assoc = λ {a} {b} {c} → ==→o≡ record { eq→ = ba01 a b c ; eq← = ba02 a b c  }
      ; x-assoc = λ {a} {b} {c} → ==→o≡ record { eq→ = λ lt → ⟪ ⟪ proj1 lt  , proj1 (proj2 lt) ⟫ , proj2 (proj2 lt)  ⟫ 
                                               ; eq← = λ lt → ⟪ proj1 (proj1 lt) , ⟪ proj2 (proj1 lt)  , proj2 lt ⟫ ⟫ } 
      ; +-sym = ?
      ; -sym = λ {a} {b} → ==→o≡ record { eq→ = λ lt → ⟪ proj2 lt , proj1 lt ⟫ ; eq← = λ lt → ⟪ proj2 lt , proj1 lt ⟫  }
-     ; +-aab = λ {a} {b} → ==→o≡ record { eq→ = ? ; eq← = case1  }
+     ; +-aab = λ {a} {b} → ==→o≡ record { eq→ = ba03 a b ; eq← = case1  }
      ; x-aab = λ {a} {b} → ==→o≡ record { eq→ = proj1 ; eq← = λ ax →  ⟪ ax , case1 ax ⟫ }
      ; +-dist = dist-ord2
      ; x-dist = dist-ord
-     ; a+0 = ?
-     ; ax1 = ?
-     ; a+-a1 = ?
-     ; ax-a0 = ? } }
-
+     ; a+0 = λ {a} → ==→o≡ record { eq→ = ba04 (hod a) ; eq← = case1 }
+     ; ax1 = λ {a} → ==→o≡ record { eq→ = proj1 ; eq← = λ ax → ⟪ ax , x⊆P a ax ⟫ }
+     ; a+-a1 = λ {a} → ==→o≡ record { eq→ = ? ; eq← = ? }
+     ; ax-a0 =  λ {a} → ==→o≡ record { eq→ = ? ; eq← = λ lt → ⊥-elim (¬x<0 lt) }
+       } } where
+     ba00 : (x y : PowerP P ) →  (hod x ∪ hod y) ⊆ P
+     ba00 x y (case1 px) = x⊆P x px
+     ba00 x y (case2 py) = x⊆P y py
+     ba01 : (a b c : PowerP P) → {x : Ordinal} → odef (hod a) x ∨ odef (hod b ∪ hod c) x →
+            odef (hod a ∪ hod b) x ∨ odef (hod c) x
+     ba01 a b c {x} (case1 ax) = case1 (case1 ax)
+     ba01 a b c {x} (case2 (case1 bx)) = case1 (case2 bx)
+     ba01 a b c {x} (case2 (case2 cx)) = case2 cx
+     ba02 : (a b c : PowerP P) → {x : Ordinal} → odef (hod a ∪ hod b) x ∨ odef (hod c) x
+         → odef (hod a) x ∨ odef (hod b ∪ hod c) x 
+     ba02 a b c {x} (case1 (case1 ax)) = case1 ax
+     ba02 a b c {x} (case1 (case2 bx)) = case2 (case1 bx)
+     ba02 a b c {x} (case2 cx) = case2 (case2 cx)
+     ba03 : (a b : PowerP P) → {x : Ordinal} →
+            odef (hod a) x ∨ odef (hod a ∩ hod b) x → OD.def (od (hod a)) x
+     ba03 a b (case1 ax) = ax
+     ba03 a b (case2 ab) = proj1 ab
+     ba04 : (a : HOD) →  {x : Ordinal} → odef a x ∨ odef od∅ x → odef a x
+     ba04 a (case1 ax) = ax
+     ba04 a (case2 x) = ⊥-elim (¬x<0 x)