aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/Show.v
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2020-03-31 19:40:21 +0100
committerYann Herklotz <git@yannherklotz.com>2020-03-31 19:40:21 +0100
commit0b4808a3705317c96387de036381e4e6add4e956 (patch)
tree3da3067ebee6ca85d68fc2c7c0d8b87d9eb18082 /src/common/Show.v
parent580cfdf676931f8b590f6f1eb84e42da17569393 (diff)
downloadvericert-0b4808a3705317c96387de036381e4e6add4e956.tar.gz
vericert-0b4808a3705317c96387de036381e4e6add4e956.zip
Add documentation and fix makefile for Compcert
Diffstat (limited to 'src/common/Show.v')
-rw-r--r--src/common/Show.v79
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)
+ }.