diff options
author | Yann Herklotz <git@yannherklotz.com> | 2020-03-31 19:40:21 +0100 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2020-03-31 19:40:21 +0100 |
commit | 0b4808a3705317c96387de036381e4e6add4e956 (patch) | |
tree | 3da3067ebee6ca85d68fc2c7c0d8b87d9eb18082 /src/common/Show.v | |
parent | 580cfdf676931f8b590f6f1eb84e42da17569393 (diff) | |
download | vericert-kvx-0b4808a3705317c96387de036381e4e6add4e956.tar.gz vericert-kvx-0b4808a3705317c96387de036381e4e6add4e956.zip |
Add documentation and fix makefile for Compcert
Diffstat (limited to 'src/common/Show.v')
-rw-r--r-- | src/common/Show.v | 79 |
1 files changed, 43 insertions, 36 deletions
diff --git a/src/common/Show.v b/src/common/Show.v index 8f9ec36..c994df3 100644 --- a/src/common/Show.v +++ b/src/common/Show.v @@ -19,43 +19,50 @@ From Coq Require Import Strings.String Bool.Bool - Arith.Arith. + Arith.Arith + ZArith.ZArith. Local Open Scope string. -Module Show. - Class Show A : Type := - { - show : A -> string - }. - - Instance showBool : Show bool := - { - show := fun b:bool => if b then "true" else "false" - }. - - Fixpoint string_of_nat_aux (time n : nat) (acc : string) : string := - let d := match n mod 10 with - | 0 => "0" | 1 => "1" | 2 => "2" | 3 => "3" | 4 => "4" | 5 => "5" - | 6 => "6" | 7 => "7" | 8 => "8" | _ => "9" - end in - let acc' := d ++ acc in - match time with +Class Show A : Type := + { + show : A -> string + }. + +Instance showBool : Show bool := + { + show := fun b:bool => if b then "true" else "false" + }. + +Fixpoint string_of_nat_aux (time n : nat) (acc : string) : string := + let d := match n mod 10 with + | 0 => "0" | 1 => "1" | 2 => "2" | 3 => "3" | 4 => "4" | 5 => "5" + | 6 => "6" | 7 => "7" | 8 => "8" | _ => "9" + end in + let acc' := d ++ acc in + match time with + | 0 => acc' + | S time' => + match n / 10 with | 0 => acc' - | S time' => - match n / 10 with - | 0 => acc' - | n' => string_of_nat_aux time' n' acc' - end - end. - - Definition string_of_nat (n : nat) : string := - string_of_nat_aux n n "". - - Instance showNat : Show nat := - { - show := string_of_nat - }. - -End Show. -Export Show. + | n' => string_of_nat_aux time' n' acc' + end + end. + +Definition string_of_nat (n : nat) : string := + string_of_nat_aux n n "". + +Instance showNat : Show nat := + { + show := string_of_nat + }. + +Instance showZ : Show Z := + { + show a := show (Z.to_nat a) + }. + +Instance showPositive : Show positive := + { + show a := show (Zpos a) + }. |