```
(def-theorem equinumerous-finite-cardinals-lemma-1
"forall(m,n:nn,f:[nn,nn],
bijective_on_q{f,omega(m+1),omega(n+1)}
implies
#(iota(x_0:nn,f(x_0)=n)) and #(f(m)))"
lemma
(theory h-o-real-arithmetic)
(proof; 51 nodes
(
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises eliminate-iota-macete)
(contrapose "with(f:[nn,nn],a:sets[nn], ran{f}=a)")
extensionality
(instantiate-existential ("n"))
beta-reduce-repeatedly
(raise-conditional (0))
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
(contrapose "with(p:prop, forall(i:nn,p))")
(antecedent-inference-strategy (0))
(simplify-antecedent "with(n:nn,not(n<n+1));")
(instantiate-existential ("x_\$1"))
(backchain "with(f:[nn,nn],a:sets[nn], injective_on_q{f,a})")
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
direct-inference
(apply-macete-with-minor-premises rev%finite-cardinal-members-are-<)
(force-substitution "omega(m+1)" "dom{f}" (0))
(apply-macete-with-minor-premises tr%domain-membership-iff-defined)
simplify
(apply-macete-with-minor-premises rev%finite-cardinal-members-are-<)
(force-substitution "omega(m+1)" "dom{f}" (0))
(apply-macete-with-minor-premises tr%domain-membership-iff-defined)
(contrapose "with(n:nn,?unit%sort=omega(n+1)(n));")
(apply-macete-with-minor-premises tr%rev%domain-membership-iff-defined)
(force-substitution "dom{f}" "omega(m+1)" (0))
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
simplify
)))
```

```
(def-theorem equinumerous-finite-cardinals-lemma-2
"forall(m,n:nn,f:[nn,nn],
bijective_on_q{f,omega(m+1),omega(n+1)}
implies
dom{lambda(x:nn,if(x<m,if(x=iota(x_0:nn,f(x_0)=n), f(m), f(x)),?nn))}
= omega(m))"
lemma
(theory h-o-real-arithmetic)
(proof; 37 nodes
(
direct-and-antecedent-inference-strategy
(cut-with-single-formula "#(iota(x_0:nn,f(x_0)=n)) and #(f(m))")
(apply-macete-with-minor-premises tr%subseteq-antisymmetry)
direct-inference
insistent-direct-inference
(apply-macete-with-minor-premises tr%domain-membership-iff-defined)
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
beta-reduce-insistently
(raise-conditional (0))
(raise-conditional (0))
direct-and-antecedent-inference-strategy
(weaken (0))
insistent-direct-inference
(apply-macete-with-minor-premises tr%domain-membership-iff-defined)
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
beta-reduce-repeatedly
(raise-conditional (0))
(raise-conditional (0))
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises tr%rev%domain-membership-iff-defined)
(force-substitution "dom{f}" "omega(m+1)" (0))
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
(weaken (0 2 3 4 5))
simplify
(apply-macete-with-minor-premises equinumerous-finite-cardinals-lemma-1)
simplify
)))
```

```
(def-theorem equinumerous-finite-cardinals-lemma-3a
"forall(m,n:nn,f:[nn,nn],
bijective_on_q{f,omega(m+1),omega(n+1)}
implies
ran{lambda(x:nn,if(x<m,if(x=iota(x_0:nn,f(x_0)=n), f(m), f(x)),?nn))}
subseteq
omega(n))"
lemma
(theory h-o-real-arithmetic)
(proof; 108 nodes
(
direct-and-antecedent-inference-strategy
(cut-with-single-formula "#(iota(x_0:nn,f(x_0)=n)) and #(f(m))")
insistent-direct-inference
beta-reduce-insistently
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
(raise-conditional (0))
direct-and-antecedent-inference-strategy
(force-substitution "x_\$0" "if(x_\$1<m,
if(x_\$1=iota(x_0:nn,f(x_0)=n), f(m), f(x_\$1)),
?nn)" (0))
(raise-conditional (0))
(raise-conditional (0))
direct-and-antecedent-inference-strategy
(incorporate-antecedent "with(n:nn,p:prop, n=iota(x_0:nn,p))")
(eliminate-defined-iota-expression 0 u)
direct-inference
(instantiate-universal-antecedent "with(p:prop, forall(u_1:nn,p))" ("m"))
(cut-with-single-formula "f(m) in ran{f}")
(contrapose "with(m:nn,f:[nn,nn],f(m) in ran{f})")
(force-substitution "ran{f}" "omega(n+1)" (0))
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
(weaken (2 3 4 5 6 7 8 9 10))
(contrapose "with(n,m:nn,f:[nn,nn],not(f(m)=n))")
simplify
(apply-macete-with-minor-premises tr%range-domain-membership)
(apply-macete-with-minor-premises tr%domain-membership-iff-defined)
(contrapose "with(u,x_\$1:nn,x_\$1=u)")
(weaken (0 1 4 5 6 7 8 9))
simplify
(contrapose "with(n:nn,f:[nn,nn],x_\$1:nn,not(x_\$1=iota(x_0:nn,f(x_0)=n)))")
(eliminate-defined-iota-expression 0 u)
(instantiate-universal-antecedent "with(p:prop, forall(u_1:nn,p))" ("x_\$1"))
(cut-with-single-formula "#(f(x_\$1))")
(cut-with-single-formula "f(x_\$1) in ran{f}")
(incorporate-antecedent "with(x_\$1:nn,f:[nn,nn],f(x_\$1) in ran{f})")
(force-substitution "ran{f}" "omega(n+1)" (0))
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
(weaken (2 4 5 6 7 8 9 10))
simplify
(apply-macete-with-minor-premises tr%range-domain-membership)
(apply-macete-with-minor-premises tr%domain-membership-iff-defined)
(apply-macete-with-minor-premises tr%rev%domain-membership-iff-defined)
(force-substitution "dom{f}" "omega(m+1)" (0))
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
(weaken (0 1 2 4 5 6 7 8 9))
simplify
(contrapose "with(m,n:nn, m=n)")
(raise-conditional (0))
(raise-conditional (0))
(contrapose "with(m,x_\$1:nn,not(x_\$1<m))")
(antecedent-inference-strategy (0))
(simplify-antecedent "with(x_\$2:nn,x_\$2=?nn)")
(apply-macete-with-minor-premises equinumerous-finite-cardinals-lemma-1)
simplify
)))
```

```
(def-theorem equinumerous-finite-cardinals-lemma-3b
"forall(m,n:nn,f:[nn,nn],
bijective_on_q{f,omega(m+1),omega(n+1)}
implies
omega(n)
subseteq
ran{lambda(x:nn,if(x<m,if(x=iota(x_0:nn,f(x_0)=n), f(m), f(x)),?nn))})"
lemma
(theory h-o-real-arithmetic)
(proof; 122 nodes
(
direct-and-antecedent-inference-strategy
(cut-with-single-formula "#(iota(x_0:nn,f(x_0)=n)) and #(f(m))")
insistent-direct-inference
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
beta-reduce-insistently
(raise-conditional (0))
direct-and-antecedent-inference-strategy
(contrapose "with(p:prop, not(p))")
(cut-with-single-formula "x_\$0 in ran{f}")
(incorporate-antecedent "with(x_\$0:nn,f:[nn,nn],x_\$1 in ran{f})")
beta-reduce-insistently
(raise-conditional (0))
direct-and-antecedent-inference-strategy
(instantiate-existential ("if(x_\$0=f(m),iota(x_0:nn,f(x_0)=n),x)"))
(raise-conditional (0))
(raise-conditional (0))
(raise-conditional (0))
(raise-conditional (0))
(raise-conditional (0))
direct-and-antecedent-inference-strategy
(contrapose "with(n:nn,f:[nn,nn],x:nn,x=iota(x_0:nn,f(x_0)=n))")
(eliminate-defined-iota-expression 0 u)
(contrapose "with(x:nn,f:[nn,nn],x_\$0:nn,x_\$0=f(x))")
(weaken (1 2 3 5 6 8 9 10 11))
simplify
(contrapose "with(p:prop, not(p))")
direct-and-antecedent-inference-strategy
(contrapose "with(p:prop, not(p))")
direct-and-antecedent-inference-strategy
(eliminate-defined-iota-expression 0 u)
(cut-with-single-formula "u<m or u=m or m<u")
(antecedent-inference "with(p,q,r:prop, p or q or r)")
(contrapose "with(n,u:nn,f:[nn,nn],f(u)=n)")
(weaken (0 1 4 5 6 7 9 10 11 12))
simplify
(cut-with-single-formula "u<m+1")
(contrapose "with(m,u:nn,u<m+1)")
(weaken (2 3 4 5 6 7 8 9 10 11 12 13))
simplify
(apply-macete-with-minor-premises rev%finite-cardinal-members-are-<)
(force-substitution "omega(m+1)" "dom{f}" (0))
(apply-macete-with-minor-premises tr%domain-membership-iff-defined)
simplify
(weaken (0 1 2 3 4 5 6 7 8 9 10 11))
simplify
(cut-with-single-formula "x<m or x=m or m<x")
(antecedent-inference "with(p,q,r:prop, p or q or r)")
(contrapose "with(m:nn,f:[nn,nn],x_\$0:nn,not(x_\$0=f(m)))")
(weaken (0 2 4 5 6 7 8 9 10))
simplify
(cut-with-single-formula "x<m+1")
(contrapose "with(m,x:nn,x<m+1)")
(weaken (2 3 4 5 6 7 8 9 10 11))
simplify
(apply-macete-with-minor-premises rev%finite-cardinal-members-are-<)
(force-substitution "omega(m+1)" "dom{f}" (0))
(apply-macete-with-minor-premises tr%domain-membership-iff-defined)
simplify
(weaken (0 1 2 3 4 5 6 7 8 9))
simplify
(force-substitution "ran{f}" "omega(n+1)" (0))
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
(weaken (0 2 3 4 5))
simplify
(apply-macete-with-minor-premises equinumerous-finite-cardinals-lemma-1)
simplify
)))
```

```
(def-theorem equinumerous-finite-cardinals-lemma-3
"forall(m,n:nn,f:[nn,nn],
bijective_on_q{f,omega(m+1),omega(n+1)}
implies
ran{lambda(x:nn,if(x<m,if(x=iota(x_0:nn,f(x_0)=n), f(m), f(x)),?nn))}
= omega(n))"
lemma
(theory h-o-real-arithmetic)
(proof
(
(apply-macete-with-minor-premises tr%subseteq-antisymmetry)
(apply-macete-with-minor-premises equinumerous-finite-cardinals-lemma-3a)
(apply-macete-with-minor-premises equinumerous-finite-cardinals-lemma-3b)
direct-and-antecedent-inference-strategy
)))
```

```
(def-theorem equinumerous-finite-cardinals-lemma-4
"forall(m,n:nn,f:[nn,nn],
bijective_on_q{f,omega(m+1),omega(n+1)}
implies
injective_on_q{lambda(x:nn,
if(x<m,if(x=iota(x_0:nn,f(x_0)=n), f(m), f(x)),?nn)),omega(m)})"
lemma
(theory h-o-real-arithmetic)
(proof; 74 nodes
(
direct-and-antecedent-inference-strategy
insistent-direct-inference
beta-reduce-repeatedly
direct-and-antecedent-inference-strategy
(backchain "with(f:[nn,nn],m:nn,injective_on_q{f,omega(m+1)})")
direct-and-antecedent-inference-strategy
(incorporate-antecedent "with(x_\$0,m:nn,x_\$0 in omega(m))")
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
(weaken (0 1 2 3 4))
simplify
(incorporate-antecedent "with(x_\$1,m:nn,x_\$1 in omega(m))")
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
(weaken (0 1 2 3 4 5))
simplify
(cut-with-single-formula "#(f(x_\$0)) and #(f(x_\$1))")
(weaken (1 2))
(incorporate-antecedent "with(m,n:nn, m=n)")
(apply-macete-with-minor-premises rev%finite-cardinal-members-are-<)
simplify
(raise-conditional (0))
(raise-conditional (0))
(raise-conditional (0))
direct-and-antecedent-inference-strategy
(instantiate-universal-antecedent
"with(f:[nn,nn],a:sets[nn],injective_on_q{f,a})" ("m" "x_\$1"))
(contrapose "with(p:prop, not(p))")
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
simplify
(contrapose "with(p:prop, not(p))")
(incorporate-antecedent "with(x_\$1,m:nn,x_\$1 in omega(m))")
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
(contrapose "with(x_\$1,m:nn,x_\$1 in omega(m));")
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
simplify
(instantiate-universal-antecedent
"with(f:[nn,nn],a:sets[nn],injective_on_q{f,a})" ("m" "x_\$0"))
(contrapose "with(p:prop, not(p))")
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
simplify
(contrapose "with(x_\$0,m:nn,not(x_\$0 in omega(m+1)))")
(incorporate-antecedent "with(x_\$0,m:nn,x_\$0 in omega(m))")
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
(contrapose "with(x_\$1,m:nn,x_\$0 in omega(m));")
(apply-macete-with-minor-premises finite-cardinal-members-are-<)
simplify
(apply-macete-with-minor-premises tr%rev%domain-membership-iff-defined)
(force-substitution "dom{f}" "omega(m+1)" (0 1))
simplify
)))
```

```
(def-theorem equinumerous-finite-cardinals-lemma-5
"forall(m,n:nn,
omega(m+1) equinumerous omega(n+1)
implies
omega(m) equinumerous omega(n))"
lemma
(theory h-o-real-arithmetic)
(proof
(
direct-and-antecedent-inference-strategy
(instantiate-existential
("lambda(x:nn,if(x<m,if(x=iota(x_0:nn,f(x_0)=n),f(m),f(x)),?nn))"))
insistent-direct-inference
insistent-direct-inference
(apply-macete-with-minor-premises equinumerous-finite-cardinals-lemma-2)
(apply-macete-with-minor-premises equinumerous-finite-cardinals-lemma-3)
(apply-macete-with-minor-premises equinumerous-finite-cardinals-lemma-4)
simplify
)))
```

```
(def-theorem equinumerous-finite-cardinals-lemma-6
"forall(n:zz,
0<=n
implies
forall(m:nn, omega(m) equinumerous omega(n) implies m<=n))"
lemma
(theory h-o-real-arithmetic)
(proof; 34 nodes
(
(apply-macete-with-minor-premises integer-induction)
beta-reduce-repeatedly
direct-inference
(apply-macete-with-minor-premises omega-0-is-empty-indicator)
(apply-macete-with-minor-premises tr%equinumerous-to-empty-indic)
(apply-macete-with-minor-premises rev%omega-0-is-empty-indicator)
(unfold-single-defined-constant-globally omega)
direct-and-antecedent-inference-strategy
(contrapose "with(a,b:sets[nn], a = b)")
extensionality
(instantiate-existential ("0"))
simplify
(weaken (0))
direct-inference-strategy
(cut-with-single-formula "m=0 or 0<m")
(antecedent-inference "with(p,q:prop, p or q)")
simplify
(force-substitution "m<=t+1" "m-1<=t" (0))
(backchain "with(p:prop, forall(m:nn, p))")
(apply-macete-with-minor-premises equinumerous-finite-cardinals-lemma-5)
(force-substitution "m-1+1" "m" (0))
simplify
simplify
simplify
simplify)))
```