rulesubsection23.25ex plus 1ex minus .2ex1.5ex plus .2ex
 
.
  H >> int in 
  by intro
rulesubsection23.25ex plus 1ex minus .2ex1.5ex plus .2ex
 
.
  H >> c in int by intro
 
where c must be an integer constant.
rulesubsection23.25ex plus 1ex minus .2ex1.5ex plus .2ex
 
.
  H >> int ext 
 by intro op 
 *
>> int ext m
 *
>> int ext n
 
.
  H >> 
 in int by intro 
 *
>> m in int 
 *
>> n in int
 
where  op must be one of  +,-,*,/, or  mod.
 
.
  H,x:int,
 >> T  
           ext ind(x;y,z.
;
;y,z.
)
           by elim x new z[,y]
 *
y:int,y<0,z:T[y+1/x]
      >> T[y/x]
 ext 
 
 *
>> T[0/x]
 ext 
 
 *
y:int,0<y,z:T[y-1/x]
      >> T[y/x]
 ext 
The optional new name must be given if x occurs free in.
 
.
  H >> ind(e;x,y.
;
;x,y.
) in 
 
 *
by intro [over z.T] [new u,v] 
 *
>> e in int 
 *
u:int,u<0,v:
 >> 
 in 
 
 *
>> 
 in 
 
 *                      
u:int,0<u,v:
 >> 
 in 
 
.
  H >> int_eq(a;b;t;
) in T by intro 
 *
>> a in int 
 *
>> b in int 
 *
a=b in int >> t in T 
 *
(a=b in int)->void >> 
 in T
 
.
  H >> less(a;b;t;
) in T by intro 
 *
>> a in int 
 *
>> b in int 
 *
a<b >> t in T 
 *
(a<b)->void >> 
 in T
rulesubsection23.25ex plus 1ex minus .2ex1.5ex plus .2ex
 ![]()
.
  H >> ind(nt;x,y.
;
;x,y.
) = t in T
           by reduce 1 down
 *
>> 
[nt,(ind(nt+1;x,y.
;
;x,y.
))/x,y] = t in T 
 *
>> nt<0
 ![]()
.
  H >> ind(zt;x,y./
;
;x,y.
) = t in T
          by reduce 1 base 
 *
>> 
 = t in T 
 *
>> zt = 0 in int
 ![]()
.
  H >> ind(nt;x,y.
;
;x,y.
) = t in T
           by reduce 1 up 
 *
>> 
[nt,(ind(nt-1;x,y.
;
;x,y.
))/x,y] = t in T 
 *
>> 0<nt
 ![]()
.
  H >> int_eq(a;a;t;
) = 
 in T by reduce 1 
 *
>> t=
 in T
 ![]()
.
  H >> int_eq(a;b;t;
) = 
 in T by reduce 1 
 *
>> 
 = 
 in T
 
where a and b are canonical  int terms, and 
.
 ![]()
.
  H >> less(a;b;t;
) = 
 in T by reduce 1 
 *
>> t=
 in T
 
where a and b are canonical  int terms such that a < b.
 ![]()
.
  H >> less(a;b;t;
) = 
 in T by reduce 1 
 *
>> 
=
 in T
 
where a and b are canonical  int terms such that 
.