diff -r 2c4032d59586 -r 284c871d3acb doc-src/IsarAdvanced/Codegen/Thy/examples/nat_binary.ML --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc-src/IsarAdvanced/Codegen/Thy/examples/nat_binary.ML Wed May 28 11:05:47 2008 +0200 @@ -0,0 +1,17 @@ +structure Nat = +struct + +datatype nat = Dig1 of nat | Dig0 of nat | One_nat | Zero_nat; + +fun plus_nat (Dig1 m) (Dig1 n) = Dig0 (plus_nat (plus_nat m n) One_nat) + | plus_nat (Dig1 m) (Dig0 n) = Dig1 (plus_nat m n) + | plus_nat (Dig0 m) (Dig1 n) = Dig1 (plus_nat m n) + | plus_nat (Dig0 m) (Dig0 n) = Dig0 (plus_nat m n) + | plus_nat (Dig1 m) One_nat = Dig0 (plus_nat m One_nat) + | plus_nat One_nat (Dig1 n) = Dig0 (plus_nat n One_nat) + | plus_nat (Dig0 m) One_nat = Dig1 m + | plus_nat One_nat (Dig0 n) = Dig1 n + | plus_nat m Zero_nat = m + | plus_nat Zero_nat n = n; + +end; (*struct Nat*)