| ok(a), ∀ b. ok(b) → rel(b, elemf(b)) ∧ ok(elemf(b)) ⊦ ∃ nf. nf(0) = a ∧ ok(nf(n)) ∧ (∀ m. m < n → ok(nf(m)) ∧ nf(m + 1) = elemf(nf(m))) |
ok(a), ∀ b. ok(b) → rel(b, elemf(b)) ∧ ok(elemf(b)) ⊦ ∃ nf. nf(0) = a ∧ ok(nf(0)) ∧ (∀ m. m < 0 → ok(nf(m)) ∧ nf(m + 1) = elemf(nf(m)))
∀ a, elemf. ok(a) ∧ (∀ b. ok(b) → rel(b, elemf(b)) ∧ ok(elemf(b))) → (∃ nf. nf(0) = a ∧ ok(nf(n0)) ∧ (∀ m. m < n0 → ok(nf(m)) ∧ nf(m + 1) = elemf(nf(m)))), ok(a), ∀ b. ok(b) → rel(b, elemf(b)) ∧ ok(elemf(b)) ⊦ ∃ nf. nf(0) = a ∧ ok(nf(n0 +1)) ∧ (∀ m. m < n0 +1 → ok(nf(m)) ∧ nf(m + 1) = elemf(nf(m)))
Used simplifier rules: nat freely generated by 0, +1;;