namespace http://cds.omdoc.org/examples❚
theory Int : http://cds.omdoc.org/urtheories?LF =
  include ?Nat❙
  int   : type ❘= nat❙
  pred  : nat ⟶ nat       ❘ # pred 1 prec 20❙
  uminus: nat ⟶ nat       ❘ # - 1 prec 20 ❙
  minus : nat ⟶ nat ⟶ nat ❘ # 1 - 2 prec 10 ❙
❚
theory IntRules : http://cds.omdoc.org/urtheories?LF =
  include ?Int ❙
  include ?NatRules❙
  times_mono    : {X:nat,Y:nat,Z:nat} ⊦ O ≤ Z ⟶ ⊦ X ≤ Y ⟶ ⊦ X * Z ≤ Y * Z❙
  times_invmono : {X,Y,Z} ⊦ O ≤ Z ⟶ ⊦ X * Z ≤ Y * Z ⟶ ⊦ X ≤ Y  ❙
  
  succ_invert    : {X} ⊦ pred (X') = X❘ role Simplify❙
  plus_invert_R  : {X,Y} ⊦ (X + Y) - Y = X❘ role Simplify❙
  plus_invert_L  : {X,Y} ⊦ (X + Y) - X = Y❘ role Simplify❙
❚