Step
*
1
1
of Lemma
fpf-join-assoc
.....subterm..... T:t
1:n
1. A : Type
2. B : A ─→ Type
3. eq : EqDecider(A)
4. d : A List
5. f1 : a:{a:A| (a ∈ d)} ─→ B[a]
6. d1 : A List
7. g1 : a:{a:A| (a ∈ d1)} ─→ B[a]
8. d2 : A List
9. h1 : a:{a:A| (a ∈ d2)} ─→ B[a]
⊢ (λt.((¬bt ∈b d)) ∧b (¬bt ∈b d1)))) = (λa.(¬ba ∈b d @ filter(λa.(¬ba ∈b d));d1)))) ∈ ({x:A| (x ∈ d2)} ─→ 𝔹)
BY
{ (EqCD
THEN (Auto THEN D -1)
THEN ((BLemma `iff_imp_equal_bool` THENM RW assert_pushdownC 0) THENA Auto)
THEN (RWO "member_append" 0 THENA Auto)
THEN (RWO "member_filter" 0 THENA Auto)
THEN Reduce 0
THEN RW assert_pushdownC 0⋅
THEN Auto
THEN AutoBoolCase ⌈t ∈b d)⌉⋅
THEN ProveProp
THEN Auto) }
Latex:
.....subterm..... T:t
1:n
1. A : Type
2. B : A {}\mrightarrow{} Type
3. eq : EqDecider(A)
4. d : A List
5. f1 : a:\{a:A| (a \mmember{} d)\} {}\mrightarrow{} B[a]
6. d1 : A List
7. g1 : a:\{a:A| (a \mmember{} d1)\} {}\mrightarrow{} B[a]
8. d2 : A List
9. h1 : a:\{a:A| (a \mmember{} d2)\} {}\mrightarrow{} B[a]
\mvdash{} (\mlambda{}t.((\mneg{}\msubb{}t \mmember{}\msubb{} d)) \mwedge{}\msubb{} (\mneg{}\msubb{}t \mmember{}\msubb{} d1)))) = (\mlambda{}a.(\mneg{}\msubb{}a \mmember{}\msubb{} d @ filter(\mlambda{}a.(\mneg{}\msubb{}a \mmember{}\msubb{} d));d1))))
By
(EqCD
THEN (Auto THEN D -1)
THEN ((BLemma `iff\_imp\_equal\_bool` THENM RW assert\_pushdownC 0) THENA Auto)
THEN (RWO "member\_append" 0 THENA Auto)
THEN (RWO "member\_filter" 0 THENA Auto)
THEN Reduce 0
THEN RW assert\_pushdownC 0\mcdot{}
THEN Auto
THEN AutoBoolCase \mkleeneopen{}t \mmember{}\msubb{} d)\mkleeneclose{}\mcdot{}
THEN ProveProp
THEN Auto)
Home
Index