Nuprl Definition : do-elimination-step
do-elimination-step(H; G; eliminated; model; evd; f; n) ==
let incurrent = λe.<e, eliminated, model> in
let m,a = elimination-step(H;eliminated;model;f;n)
in let eliminate = λt.<evd, [<m, t> / eliminated], model> in
eval k = ||H|| in
eval hnum = k - m + 1 in
eval hyp = H[hnum] in
mFOL_ind(hyp;
mFOatomic(P,vars)
⇒ "stopped on a atomic hyp??";
mFOconnect(knd,A,B)
⇒ _,__.if knd =a "imp"
then <impE on hnum, [incurrent a; eliminate (λx.stop(k))]>
if knd =a "and" then <andE on hnum, [eliminate <stop(k + 1), stop(k)>]>
if knd =a "or" then <orE on hnum, [eliminate (inl stop(k)); eliminate (inr stop(k) )]>
else "funny connective??"
fi ;
mFOquant(isall,v,body)
⇒ _.if isall
then eval model' = update-alist(IntDeq;model;m;[<a, stop(k)>];table.[<a, stop(k)> / table]) in
<allE on hnum with a, [<evd, eliminated, model'>]>
else eval j = new-mFO-var([G / H]) in
<existsE on hnum with j, [eliminate <j, stop(k)>]>
fi )
Definitions occuring in Statement :
elimination-step: elimination-step(H;eliminated;model;f;n)
,
new-mFO-var: new-mFO-var(H)
,
mRuleexistsE: existsE on hypnum with var
,
mRuleallE: allE on hypnum with var
,
mRuleimpE: impE on hypnum
,
mRuleorE: orE on hypnum
,
mRuleandE: andE on hypnum
,
mFOL_ind: mFOL_ind,
update-alist: update-alist(eq;L;x;z;v.f[v])
,
int-deq: IntDeq
,
select: L[n]
,
length: ||as||
,
cons: [a / b]
,
nil: []
,
callbyvalue: callbyvalue,
ifthenelse: if b then t else f fi
,
eq_atom: x =a y
,
let: let,
apply: f a
,
lambda: λx.A[x]
,
spread: spread def,
pair: <a, b>
,
inr: inr x
,
inl: inl x
,
subtract: n - m
,
add: n + m
,
natural_number: $n
,
token: "$token"
do-elimination-step(H; G; eliminated; model; evd; f; n) ==
let incurrent = \mlambda{}e.<e, eliminated, model> in
let m,a = elimination-step(H;eliminated;model;f;n)
in let eliminate = \mlambda{}t.<evd, [<m, t> / eliminated], model> in
eval k = ||H|| in
eval hnum = k - m + 1 in
eval hyp = H[hnum] in
mFOL\_ind(hyp;
mFOatomic(P,vars){}\mRightarrow{} "stopped on a atomic hyp??";
mFOconnect(knd,A,B){}\mRightarrow{} $_{}$,\_$_{}$.i\000Cf knd =a "imp"
then <impE on hnum
, [incurrent a; eliminate (\mlambda{}x.stop(k))]
>
if knd =a "and" then <andE on hnum, [eliminate <stop(k + 1), stop(k)>]>
if knd =a "or"
then <orE on hnum, [eliminate (inl stop(k)); eliminate (inr stop(k) )]>
else "funny connective??"
fi ;
mFOquant(isall,v,body){}\mRightarrow{} $_{}$.if isall
then eval model' = update-alist(IntDeq;model;m;[<a, stop(k)>];table.[<a, sto\000Cp(k)> / table]) in
<allE on hnum with a, [<evd, eliminated, model'>]>
else eval j = new-mFO-var([G / H]) in
<existsE on hnum with j, [eliminate <j, stop(k)>]>
fi )
Date html generated:
2015_07_17-AM-07_57_24
Last ObjectModification:
2012_12_06-PM-08_59_58
Home
Index