### Nuprl Lemma : primrec-as-fix

`∀[n,b,c:Top].  (primrec(n;b;c) ~ fix((λp,n. if (n) < (1)  then b  else (c (n - 1) (p (n - 1))))) n)`

Proof

Definitions occuring in Statement :  primrec: `primrec(n;b;c)` uall: `∀[x:A]. B[x]` top: `Top` less: `if (a) < (b)  then c  else d` apply: `f a` fix: `fix(F)` lambda: `λx.A[x]` subtract: `n - m` natural_number: `\$n` sqequal: `s ~ t`
Definitions unfolded in proof :  uall: `∀[x:A]. B[x]` member: `t ∈ T` all: `∀x:A. B[x]` nat: `ℕ` implies: `P `` Q` false: `False` and: `P ∧ Q` ge: `i ≥ j ` le: `A ≤ B` cand: `A c∧ B` less_than: `a < b` squash: `↓T` guard: `{T}` uimplies: `b supposing a` prop: `ℙ` top: `Top` bool: `𝔹` unit: `Unit` it: `⋅` btrue: `tt` uiff: `uiff(P;Q)` ifthenelse: `if b then t else f fi ` not: `¬A` less_than': `less_than'(a;b)` true: `True` bfalse: `ff` exists: `∃x:A. B[x]` or: `P ∨ Q` sq_type: `SQType(T)` bnot: `¬bb` assert: `↑b` iff: `P `⇐⇒` Q` rev_implies: `P `` Q` decidable: `Dec(P)` primrec: `primrec(n;b;c)` primtailrec: `primtailrec(n;i;b;f)` subtract: `n - m` has-value: `(a)↓`
Lemmas referenced :  nat_properties less_than_transitivity1 less_than_irreflexivity ge_wf istype-less_than primrec0_lemma istype-void subtract-1-ge-0 primrec-unroll lt_int_wf eqtt_to_assert assert_of_lt_int less-iff-le add_functionality_wrt_le add-associates add-zero add-commutes le-add-cancel2 eqff_to_assert bool_cases_sqequal subtype_base_sq bool_wf bool_subtype_base iff_transitivity assert_wf bnot_wf not_wf less_than_wf iff_weakening_uiff assert_of_bnot istype-assert istype-nat istype-top decidable__le not-lt-2 zero-add le-add-cancel istype-false not-le-2 condition-implies-le minus-add minus-zero minus-one-mul minus-one-mul-top istype-le istype-int has-value_wf_base is-exception_wf exception-not-value value-type-has-value int-value-type
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity Error :isect_memberFormation_alt,  introduction cut Error :lambdaFormation_alt,  extract_by_obid sqequalHypSubstitution isectElimination thin hypothesisEquality hypothesis setElimination rename intWeakElimination independent_pairFormation productElimination imageElimination natural_numberEquality independent_isectElimination independent_functionElimination voidElimination Error :universeIsType,  sqequalRule Error :lambdaEquality_alt,  dependent_functionElimination Error :isect_memberEquality_alt,  axiomSqEquality Error :isectIsTypeImplies,  Error :inhabitedIsType,  Error :functionIsTypeImplies,  because_Cache unionElimination equalityElimination equalityTransitivity equalitySymmetry addEquality Error :dependent_pairFormation_alt,  Error :equalityIstype,  promote_hyp instantiate cumulativity Error :functionIsType,  lessCases imageMemberEquality baseClosed callbyvalueReduce sqleReflexivity Error :dependent_set_memberEquality_alt,  minusEquality sqequalSqle divergentSqle callbyvalueLess baseApply closedConclusion lessExceptionCases axiomSqleEquality intEquality exceptionSqequal

Latex:
\mforall{}[n,b,c:Top].    (primrec(n;b;c)  \msim{}  fix((\mlambda{}p,n.  if  (n)  <  (1)    then  b    else  (c  (n  -  1)  (p  (n  -  1)))))  n)

Date html generated: 2019_06_20-AM-11_27_49
Last ObjectModification: 2019_01_28-PM-05_55_20

Theory : call!by!value_2

Home Index