Step
*
of Lemma
mapfilter-no-rep-fun
∀[T,U,V:Type]. ∀[eq:EqDecider(U)]. ∀[L:T List]. ∀[u:U]. ∀[f:T ⟶ U]. ∀[g:{x:{x:T| (x ∈ L)} | ↑(eq f[x] u)} ⟶ V].
||mapfilter(g;λx.(eq f[x] u);L)|| ≤ 1 supposing no_repeats(U;map(f;L))
BY
{ ((UnivCD THENA Auto)
THEN (Assert ⌜||mapfilter(g;λx.(eq f[x] u);L)|| ∈ ℤ⌝⋅
THENA (Using [`A',⌜V⌝] (BLemma `length_wf`)⋅
THEN Try (Complete (Auto))
THEN BLemma `mapfilter-wf`
THEN Auto
THEN DoSubsume
THEN Auto)
)
THEN Auto
THEN (SupposeNot THEN Auto)
THEN (Assert ⌜False⌝⋅ THEN Auto)
THEN Assert ⌜2 ≤ ||mapfilter(g;λx.(eq f[x] u);L)||⌝⋅
THEN Auto
THEN Thin (-2)) }
1
1. T : Type
2. U : Type
3. V : Type
4. eq : EqDecider(U)
5. L : T List
6. u : U
7. f : T ⟶ U
8. g : {x:{x:T| (x ∈ L)} | ↑(eq f[x] u)} ⟶ V
9. no_repeats(U;map(f;L))
10. ||mapfilter(g;λx.(eq f[x] u);L)|| ∈ ℤ
11. 2 ≤ ||mapfilter(g;λx.(eq f[x] u);L)||
⊢ False
Latex:
Latex:
\mforall{}[T,U,V:Type]. \mforall{}[eq:EqDecider(U)]. \mforall{}[L:T List]. \mforall{}[u:U]. \mforall{}[f:T {}\mrightarrow{} U]. \mforall{}[g:\{x:\{x:T| (x \mmember{} L)\} |
\muparrow{}(eq f[x] u)\} {}\mrightarrow{} V].
||mapfilter(g;\mlambda{}x.(eq f[x] u);L)|| \mleq{} 1 supposing no\_repeats(U;map(f;L))
By
Latex:
((UnivCD THENA Auto)
THEN (Assert \mkleeneopen{}||mapfilter(g;\mlambda{}x.(eq f[x] u);L)|| \mmember{} \mBbbZ{}\mkleeneclose{}\mcdot{}
THENA (Using [`A',\mkleeneopen{}V\mkleeneclose{}] (BLemma `length\_wf`)\mcdot{}
THEN Try (Complete (Auto))
THEN BLemma `mapfilter-wf`
THEN Auto
THEN DoSubsume
THEN Auto)
)
THEN Auto
THEN (SupposeNot THEN Auto)
THEN (Assert \mkleeneopen{}False\mkleeneclose{}\mcdot{} THEN Auto)
THEN Assert \mkleeneopen{}2 \mleq{} ||mapfilter(g;\mlambda{}x.(eq f[x] u);L)||\mkleeneclose{}\mcdot{}
THEN Auto
THEN Thin (-2))
Home
Index