Step
*
1
1
of Lemma
bag-map-filter
.....equality.....
1. T : Type
2. A : Type
3. f : T ⟶ A
4. P : T ⟶ 𝔹
5. Q : A ⟶ 𝔹
6. ∀x:T. Q[f x] = P[x]
7. as : T List
8. bs : T List
9. permutation(T;as;bs)
⊢ bag-map(f;[x∈as|P[x]]) ~ [x∈bag-map(f;as)|Q[x]]
BY
{ (RepUR ``bag-map bag-filter`` 0
THEN (InstLemma `map-filter` [⌜T⌝;⌜A⌝;⌜f⌝;⌜λx.P[x]⌝;⌜Q⌝;⌜as⌝]⋅ THENA (Reduce 0 THEN Auto))
THEN HypSubst' (-1) 0
THEN Thin (-1)) }
1
1. T : Type
2. A : Type
3. f : T ⟶ A
4. P : T ⟶ 𝔹
5. Q : A ⟶ 𝔹
6. ∀x:T. Q[f x] = P[x]
7. as : T List
8. bs : T List
9. permutation(T;as;bs)
⊢ filter(Q;map(f;as)) ~ filter(λx.Q[x];map(f;as))
Latex:
Latex:
.....equality.....
1. T : Type
2. A : Type
3. f : T {}\mrightarrow{} A
4. P : T {}\mrightarrow{} \mBbbB{}
5. Q : A {}\mrightarrow{} \mBbbB{}
6. \mforall{}x:T. Q[f x] = P[x]
7. as : T List
8. bs : T List
9. permutation(T;as;bs)
\mvdash{} bag-map(f;[x\mmember{}as|P[x]]) \msim{} [x\mmember{}bag-map(f;as)|Q[x]]
By
Latex:
(RepUR ``bag-map bag-filter`` 0
THEN (InstLemma `map-filter` [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}A\mkleeneclose{};\mkleeneopen{}f\mkleeneclose{};\mkleeneopen{}\mlambda{}x.P[x]\mkleeneclose{};\mkleeneopen{}Q\mkleeneclose{};\mkleeneopen{}as\mkleeneclose{}]\mcdot{} THENA (Reduce 0 THEN Auto))
THEN HypSubst' (-1) 0
THEN Thin (-1))
Home
Index