(def-theorem cardinality-of-intervals-lemma "forall(m:zz, n:nn, omega(n) equinumerous zz%interval(m,m+n-1))" lemma (theory h-o-real-arithmetic) (proof ( direct-inference unfold-defined-constants (instantiate-existential ("lambda(k:nn,if(k<n,m+k,?zz))")) (block (script-comment "`instantiate-existential' at (0 0 0)") extensionality beta-reduce-repeatedly direct-inference (case-split-on-conditionals (1)) ) (block (script-comment "`instantiate-existential' at (0 0 1)") extensionality beta-reduce-repeatedly direct-inference (case-split-on-conditionals (0)) (block (script-comment "`case-split-on-conditionals' at (1 0)") (antecedent-inference "with(p:prop,forsome(x_$7:nn,p));") (incorporate-antecedent "with(r:rr,x_0:zz,x_0=r);") simplify direct-and-antecedent-inference-strategy simplify (cut-with-single-formula "0<=x_$7") simplify (block (script-comment "`cut-with-single-formula' at (1)") (cut-with-single-formula "#(x_$7,nn)") (incorporate-antecedent "with(x_$7:nn,#(x_$7,nn));") (apply-macete-with-minor-premises nn-defining-axiom_h-o-real-arithmetic) simplify ) ) (block (script-comment "`case-split-on-conditionals' at (2 0)") direct-inference (contrapose "with(p:prop,not(p));") (block (script-comment "`direct-inference' at (1)") (contrapose "with(p:prop,not(forsome(x_$7:nn,p and p)));") (instantiate-existential ("x_0-m")) simplify simplify ) ) ) (block (script-comment "`instantiate-existential' at (0 1)") (weaken (0)) simplify-insistently ) (block (script-comment "`instantiate-existential' at (1 0)") sort-definedness direct-inference (case-split ("#(xx_0,nn)")) simplify simplify ) )))