fact: Definition ReplaceFormulaTerm : nat -> nat -> nat := evalStrongRec 1 (fun f recs s : nat => switchPR (car f) (switchPR (pred (car f)) (switchPR (pred (pred (car f))) (switchPR (pred (pred (pred (car f)))) (cPair (car f) (ReplaceTermsTerm (cdr f) s)) (cPair 3 (cPair s (codeNth (f - S (cdr (cdr f))) recs)))) (cPair 2 (codeNth (f - S (cdr f)) recs))) (cPair 1 (cPair (codeNth (f - S (car (cdr f))) recs) (codeNth (f - S (cdr (cdr f))) recs)))) (cPair 0 (cPair (ReplaceTermTerm (car (cdr f)) s) (ReplaceTermTerm (cdr (cdr f)) s)))).
imports: Coq(Arith Vector Lia) hydras.Ackermann(primRec cPair folProp code extEqualNat codeSubTerm codeFreeVar)