17 (** val mod_aux : Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat **)
18 let rec mod_aux p m n =
22 (match Nat.leb m n with
24 | Bool.False -> mod_aux q (Nat.minus m (Nat.S n)) n)
26 (** val mod0 : Nat.nat -> Nat.nat -> Nat.nat **)
29 | Nat.S p -> mod_aux n n p
31 (** val div_aux : Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat **)
32 let rec div_aux p m n =
36 (match Nat.leb m n with
38 | Bool.False -> Nat.S (div_aux q (Nat.minus m (Nat.S n)) n))
40 (** val div : Nat.nat -> Nat.nat -> Nat.nat **)
43 | Nat.S p -> div_aux n n p
45 (** val div_mod_spec_rect_Type4 :
46 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> (__ -> __ -> 'a1) -> 'a1 **)
47 let rec div_mod_spec_rect_Type4 n m q r h_div_mod_spec_intro =
48 h_div_mod_spec_intro __ __
50 (** val div_mod_spec_rect_Type5 :
51 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> (__ -> __ -> 'a1) -> 'a1 **)
52 let rec div_mod_spec_rect_Type5 n m q r h_div_mod_spec_intro =
53 h_div_mod_spec_intro __ __
55 (** val div_mod_spec_rect_Type3 :
56 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> (__ -> __ -> 'a1) -> 'a1 **)
57 let rec div_mod_spec_rect_Type3 n m q r h_div_mod_spec_intro =
58 h_div_mod_spec_intro __ __
60 (** val div_mod_spec_rect_Type2 :
61 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> (__ -> __ -> 'a1) -> 'a1 **)
62 let rec div_mod_spec_rect_Type2 n m q r h_div_mod_spec_intro =
63 h_div_mod_spec_intro __ __
65 (** val div_mod_spec_rect_Type1 :
66 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> (__ -> __ -> 'a1) -> 'a1 **)
67 let rec div_mod_spec_rect_Type1 n m q r h_div_mod_spec_intro =
68 h_div_mod_spec_intro __ __
70 (** val div_mod_spec_rect_Type0 :
71 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> (__ -> __ -> 'a1) -> 'a1 **)
72 let rec div_mod_spec_rect_Type0 n m q r h_div_mod_spec_intro =
73 h_div_mod_spec_intro __ __
75 (** val div_mod_spec_inv_rect_Type4 :
76 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> (__ -> __ -> __ -> 'a1) ->
78 let div_mod_spec_inv_rect_Type4 x1 x2 x3 x4 h1 =
79 let hcut = div_mod_spec_rect_Type4 x1 x2 x3 x4 h1 in hcut __
81 (** val div_mod_spec_inv_rect_Type3 :
82 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> (__ -> __ -> __ -> 'a1) ->
84 let div_mod_spec_inv_rect_Type3 x1 x2 x3 x4 h1 =
85 let hcut = div_mod_spec_rect_Type3 x1 x2 x3 x4 h1 in hcut __
87 (** val div_mod_spec_inv_rect_Type2 :
88 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> (__ -> __ -> __ -> 'a1) ->
90 let div_mod_spec_inv_rect_Type2 x1 x2 x3 x4 h1 =
91 let hcut = div_mod_spec_rect_Type2 x1 x2 x3 x4 h1 in hcut __
93 (** val div_mod_spec_inv_rect_Type1 :
94 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> (__ -> __ -> __ -> 'a1) ->
96 let div_mod_spec_inv_rect_Type1 x1 x2 x3 x4 h1 =
97 let hcut = div_mod_spec_rect_Type1 x1 x2 x3 x4 h1 in hcut __
99 (** val div_mod_spec_inv_rect_Type0 :
100 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> (__ -> __ -> __ -> 'a1) ->
102 let div_mod_spec_inv_rect_Type0 x1 x2 x3 x4 h1 =
103 let hcut = div_mod_spec_rect_Type0 x1 x2 x3 x4 h1 in hcut __
105 (** val div_mod_spec_discr :
106 Nat.nat -> Nat.nat -> Nat.nat -> Nat.nat -> __ **)
107 let div_mod_spec_discr a1 a2 a3 a4 =
108 Logic.eq_rect_Type2 __ (Obj.magic (fun _ dH -> dH __ __)) __