Step * 1 of Lemma bag-rep-size-restrict


1. Type
2. eq EqDecider(T)
3. T
4. T
5. List
6. primrec(||filter(λz.(eq z);v)||;{};λi,r. x.r) filter(λz.(eq z);v) ∈ bag(T)
⊢ primrec(||if eq then [u filter(λz.(eq z);v)] else filter(λz.(eq z);v) fi ||;{};λi,r. x.r)
if eq then [u filter(λz.(eq z);v)] else filter(λz.(eq z);v) fi 
∈ bag(T)
BY
(AutoSplit THEN (RWO "primrec-unroll" THENA Auto) THEN AutoSplit) }

1
1. Type
2. eq EqDecider(T)
3. T
4. T
5. List
6. primrec(||filter(λz.(eq z);v)||;{};λi,r. x.r) filter(λz.(eq z);v) ∈ bag(T)
7. u ∈ T
8. (||filter(λz.(eqof(eq) z);v)|| 1) 0 ∈ ℤ
⊢ {} [u filter(λz.(eq z);v)] ∈ bag(T)

2
1. Type
2. eq EqDecider(T)
3. T
4. T
5. List
6. ||filter(λz.(eqof(eq) z);v)|| 1 ≠ 0
7. primrec(||filter(λz.(eq z);v)||;{};λi,r. x.r) filter(λz.(eq z);v) ∈ bag(T)
8. u ∈ T
⊢ x.primrec((||filter(λz.(eq z);v)|| 1) 1;{};λi,r. x.r) [u filter(λz.(eq z);v)] ∈ bag(T)


Latex:


Latex:

1.  T  :  Type
2.  eq  :  EqDecider(T)
3.  x  :  T
4.  u  :  T
5.  v  :  T  List
6.  primrec(||filter(\mlambda{}z.(eq  x  z);v)||;\{\};\mlambda{}i,r.  x.r)  =  filter(\mlambda{}z.(eq  x  z);v)
\mvdash{}  primrec(||if  eq  x  u  then  [u  /  filter(\mlambda{}z.(eq  x  z);v)]  else  filter(\mlambda{}z.(eq  x  z);v)  fi  ||;\{\};\mlambda{}i,r.  x.r\000C)
=  if  eq  x  u  then  [u  /  filter(\mlambda{}z.(eq  x  z);v)]  else  filter(\mlambda{}z.(eq  x  z);v)  fi 


By


Latex:
(AutoSplit  THEN  (RWO  "primrec-unroll"  0  THENA  Auto)  THEN  AutoSplit)




Home Index