Step
*
2
2
2
1
1
1
1
1
1
2
1
1
1
of Lemma
fdl-hom_wf
1. X : Type
2. L : BoundedDistributiveLattice
3. f : X ⟶ Point(L)
4. fdl-hom(L;f) ∈ free-dl-type(X) ⟶ Point(L)
5. (fdl-hom(L;f) 0) = 0 ∈ Point(L)
6. (fdl-hom(L;f) 1) = 1 ∈ Point(L)
7. ∀as,bs:X List List.  (fdl-hom(L;f) as ∨ fdl-hom(L;f) bs = (fdl-hom(L;f) as ∨ bs) ∈ Point(L))
8. ys : X List List
9. y : X List
10. ∀bs:X List List. (fdl-hom(L;f) ys ∧ fdl-hom(L;f) bs = (fdl-hom(L;f) free-dl-meet(ys;bs)) ∈ Point(L))
11. bs : X List List
12. Point(free-dl(X)) ~ free-dl-type(X)
⊢ free-dl-meet(ys ∨ [y];bs) = free-dl-meet(ys;bs) ∨ free-dl-meet([y];bs) ∈ free-dl-type(X)
BY
{ ((Subst' free-dl-meet(ys;bs) ~ ys ∧ bs 0 THENA (RW (SubC (TagC (mk_tag_term 100))) 0 THEN Auto))
   THEN (Subst' free-dl-meet([y];bs) ~ [y] ∧ bs 0 THENA (RW (SubC (TagC (mk_tag_term 100))) 0 THEN Auto))
   THEN (Subst' free-dl-meet(ys ∨ [y];bs) ~ ys ∨ [y] ∧ bs 0 THENA (RW (SubC (TagC (mk_tag_term 100))) 0 THEN Auto))) }
1
1. X : Type
2. L : BoundedDistributiveLattice
3. f : X ⟶ Point(L)
4. fdl-hom(L;f) ∈ free-dl-type(X) ⟶ Point(L)
5. (fdl-hom(L;f) 0) = 0 ∈ Point(L)
6. (fdl-hom(L;f) 1) = 1 ∈ Point(L)
7. ∀as,bs:X List List.  (fdl-hom(L;f) as ∨ fdl-hom(L;f) bs = (fdl-hom(L;f) as ∨ bs) ∈ Point(L))
8. ys : X List List
9. y : X List
10. ∀bs:X List List. (fdl-hom(L;f) ys ∧ fdl-hom(L;f) bs = (fdl-hom(L;f) free-dl-meet(ys;bs)) ∈ Point(L))
11. bs : X List List
12. Point(free-dl(X)) ~ free-dl-type(X)
⊢ ys ∨ [y] ∧ bs = ys ∧ bs ∨ [y] ∧ bs ∈ free-dl-type(X)
Latex:
Latex:
1.  X  :  Type
2.  L  :  BoundedDistributiveLattice
3.  f  :  X  {}\mrightarrow{}  Point(L)
4.  fdl-hom(L;f)  \mmember{}  free-dl-type(X)  {}\mrightarrow{}  Point(L)
5.  (fdl-hom(L;f)  0)  =  0
6.  (fdl-hom(L;f)  1)  =  1
7.  \mforall{}as,bs:X  List  List.    (fdl-hom(L;f)  as  \mvee{}  fdl-hom(L;f)  bs  =  (fdl-hom(L;f)  as  \mvee{}  bs))
8.  ys  :  X  List  List
9.  y  :  X  List
10.  \mforall{}bs:X  List  List.  (fdl-hom(L;f)  ys  \mwedge{}  fdl-hom(L;f)  bs  =  (fdl-hom(L;f)  free-dl-meet(ys;bs)))
11.  bs  :  X  List  List
12.  Point(free-dl(X))  \msim{}  free-dl-type(X)
\mvdash{}  free-dl-meet(ys  \mvee{}  [y];bs)  =  free-dl-meet(ys;bs)  \mvee{}  free-dl-meet([y];bs)
By
Latex:
((Subst'  free-dl-meet(ys;bs)  \msim{}  ys  \mwedge{}  bs  0  THENA  (RW  (SubC  (TagC  (mk\_tag\_term  100)))  0  THEN  Auto))
  THEN  (Subst'  free-dl-meet([y];bs)  \msim{}  [y]  \mwedge{}  bs  0
              THENA  (RW  (SubC  (TagC  (mk\_tag\_term  100)))  0  THEN  Auto)
              )
  THEN  (Subst'  free-dl-meet(ys  \mvee{}  [y];bs)  \msim{}  ys  \mvee{}  [y]  \mwedge{}  bs  0
              THENA  (RW  (SubC  (TagC  (mk\_tag\_term  100)))  0  THEN  Auto)
              ))
Home
Index