]> matita.cs.unibo.it Git - helm.git/blob - matita/contribs/assembly/freescale/freescale_ocaml/matita_nat_minimization.ml
tagged 0.5.0-rc1
[helm.git] / matita / contribs / assembly / freescale / freescale_ocaml / matita_nat_minimization.ml
1 let max =
2 let rec max = 
3 (function i -> (function f -> 
4 (match (f i) with 
5    Matita_datatypes_bool.True -> i
6  | Matita_datatypes_bool.False -> 
7 (match i with 
8    Matita_nat_nat.O -> Matita_nat_nat.O
9  | Matita_nat_nat.S(j) -> (max j f))
10 )
11 )) in max
12 ;;
13
14 let min_aux =
15 let rec min_aux = 
16 (function off -> (function n -> (function f -> 
17 (match (f n) with 
18    Matita_datatypes_bool.True -> n
19  | Matita_datatypes_bool.False -> 
20 (match off with 
21    Matita_nat_nat.O -> n
22  | Matita_nat_nat.S(p) -> (min_aux p (Matita_nat_nat.S(n)) f))
23 )
24 ))) in min_aux
25 ;;
26
27 let min =
28 (function n -> (function f -> (min_aux n Matita_nat_nat.O f)))
29 ;;
30