Step
*
of Lemma
lattice-extend-wc-meet
∀[T:Type]. ∀[eq:EqDecider(T)]. ∀[Cs:T ⟶ fset(fset(T))]. ∀[L:BoundedDistributiveLattice]. ∀[eqL:EqDecider(Point(L))].
∀[f:T ⟶ Point(L)].
  ∀[a,b:Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x]))].
    lattice-extend-wc(L;eq;eqL;f;a) ∧ lattice-extend-wc(L;eq;eqL;f;b) ≤ lattice-extend-wc(L;eq;eqL;f;a ∧ b) 
  supposing ∀x:T. ∀c:fset(T).  (c ∈ Cs[x] 
⇒ (/\(f"(c)) = 0 ∈ Point(L)))
BY
{ (Auto
   THEN (RWO "free-dlwc-meet" 0 THENA Auto)
   THEN Unfold `lattice-extend-wc` 0
   THEN Unfold `lattice-extend` 0
   THEN Fold `lattice-extend\'` 0
   THEN All (RWO "free-dlwc-point")
   THEN Auto
   THEN (Using [`b',
         ⌜lattice-extend'(L;eq;eqL;f;f-union(deq-fset(eq);deq-fset(eq);a;as.λbs.as ⋃ bs"(b) s.t. λs....))⌝
         ] (BLemma `lattice-le_transitivity`)⋅
         THENA Auto
         )) }
1
1. T : Type
2. eq : EqDecider(T)
3. Cs : T ⟶ fset(fset(T))
4. L : BoundedDistributiveLattice
5. eqL : EqDecider(Point(L))
6. f : T ⟶ Point(L)
7. ∀x:T. ∀c:fset(T).  (c ∈ Cs[x] 
⇒ (/\(f"(c)) = 0 ∈ Point(L)))
8. a : {ac:fset(fset(T))| (↑fset-antichain(eq;ac)) ∧ fset-all(ac;a.fset-contains-none(eq;a;x.Cs[x]))} 
9. b : {ac:fset(fset(T))| (↑fset-antichain(eq;ac)) ∧ fset-all(ac;a.fset-contains-none(eq;a;x.Cs[x]))} 
⊢ lattice-extend'(L;eq;eqL;f;f-union(deq-fset(eq);deq-fset(eq);a;as.λbs.as ⋃ bs"(b) s.t. λs....)) 
  ≤ lattice-extend'(L;eq;eqL;f;glb(λs.fset-contains-none(eq;s;x.Cs[x]);a;b))
2
1. T : Type
2. eq : EqDecider(T)
3. Cs : T ⟶ fset(fset(T))
4. L : BoundedDistributiveLattice
5. eqL : EqDecider(Point(L))
6. f : T ⟶ Point(L)
7. ∀x:T. ∀c:fset(T).  (c ∈ Cs[x] 
⇒ (/\(f"(c)) = 0 ∈ Point(L)))
8. a : {ac:fset(fset(T))| (↑fset-antichain(eq;ac)) ∧ fset-all(ac;a.fset-contains-none(eq;a;x.Cs[x]))} 
9. b : {ac:fset(fset(T))| (↑fset-antichain(eq;ac)) ∧ fset-all(ac;a.fset-contains-none(eq;a;x.Cs[x]))} 
⊢ lattice-extend'(L;eq;eqL;f;a) ∧ lattice-extend'(L;eq;eqL;f;b) 
  ≤ lattice-extend'(L;eq;eqL;f;f-union(deq-fset(eq);deq-fset(eq);a;as.λbs.as ⋃ bs"(b) s.t. λs....))
Latex:
Latex:
\mforall{}[T:Type].  \mforall{}[eq:EqDecider(T)].  \mforall{}[Cs:T  {}\mrightarrow{}  fset(fset(T))].  \mforall{}[L:BoundedDistributiveLattice].
\mforall{}[eqL:EqDecider(Point(L))].  \mforall{}[f:T  {}\mrightarrow{}  Point(L)].
    \mforall{}[a,b:Point(free-dist-lattice-with-constraints(T;eq;x.Cs[x]))].
        lattice-extend-wc(L;eq;eqL;f;a)  \mwedge{}  lattice-extend-wc(L;eq;eqL;f;b) 
        \mleq{}  lattice-extend-wc(L;eq;eqL;f;a  \mwedge{}  b) 
    supposing  \mforall{}x:T.  \mforall{}c:fset(T).    (c  \mmember{}  Cs[x]  {}\mRightarrow{}  (/\mbackslash{}(f"(c))  =  0))
By
Latex:
(Auto
  THEN  (RWO  "free-dlwc-meet"  0  THENA  Auto)
  THEN  Unfold  `lattice-extend-wc`  0
  THEN  Unfold  `lattice-extend`  0
  THEN  Fold  `lattice-extend\mbackslash{}'`  0
  THEN  All  (RWO  "free-dlwc-point")
  THEN  Auto
  THEN  (Using  [`b',
              ...]  (BLemma  `lattice-le\_transitivity`)\mcdot{}
              THENA  Auto
              ))
Home
Index