File: pretty.v

package info (click to toggle)
coq-stdpp 1.11.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,696 kB
  • sloc: makefile: 52; sh: 35; sed: 1
file content (74 lines) | stat: -rw-r--r-- 2,316 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
From stdpp Require Import pretty.
From Coq Require Import Ascii.

Section N.
  Local Open Scope N_scope.

  Lemma pretty_N_0 : pretty 0 = "0".
  Proof. reflexivity. Qed.
  Lemma pretty_N_1 : pretty 1 = "1".
  Proof. reflexivity. Qed.
  Lemma pretty_N_9 : pretty 9 = "9".
  Proof. reflexivity. Qed.
  Lemma pretty_N_10 : pretty 10 = "10".
  Proof. reflexivity. Qed.
  Lemma pretty_N_100 : pretty 100 = "100".
  Proof. reflexivity. Qed.
  Lemma pretty_N_123456789 : pretty 123456789 = "123456789".
  Proof. reflexivity. Qed.
End N.

(** Minimized version of:

  https://coq.zulipchat.com/#narrow/stream/237977-Coq-users/topic/Stack.20overflow.20in.20Qed.2E

Fixed by making the [wp_guard] in [pretty_N_go] proportional to the
size of the input so that it blocks in case the input is an open term. *)
Lemma test_no_stack_overflow p n :
  String.get n (pretty (N.pos p)) ≠ Some "_"%char →
  String.get (S n) ("-" +:+ pretty (N.pos p)) ≠ Some "_"%char.
Proof. intros Hlem. apply Hlem. Qed.

Section nat.
  Local Open Scope nat_scope.

  Lemma pretty_nat_0 : pretty 0 = "0".
  Proof. reflexivity. Qed.
  Lemma pretty_nat_1 : pretty 1 = "1".
  Proof. reflexivity. Qed.
  Lemma pretty_nat_9 : pretty 9 = "9".
  Proof. reflexivity. Qed.
  Lemma pretty_nat_10 : pretty 10 = "10".
  Proof. reflexivity. Qed.
  Lemma pretty_nat_100 : pretty 100 = "100".
  Proof. reflexivity. Qed.
  Lemma pretty_nat_1234 : pretty 1234 = "1234".
  Proof. reflexivity. Qed.
End nat.

Section Z.
  Local Open Scope Z_scope.

  Lemma pretty_Z_0 : pretty 0 = "0".
  Proof. reflexivity. Qed.
  Lemma pretty_Z_1 : pretty 1 = "1".
  Proof. reflexivity. Qed.
  Lemma pretty_Z_9 : pretty 9 = "9".
  Proof. reflexivity. Qed.
  Lemma pretty_Z_10 : pretty 10 = "10".
  Proof. reflexivity. Qed.
  Lemma pretty_Z_100 : pretty 100 = "100".
  Proof. reflexivity. Qed.
  Lemma pretty_Z_123456789 : pretty 123456789 = "123456789".
  Proof. reflexivity. Qed.
  Lemma pretty_Z_opp_1 : pretty (-1) = "-1".
  Proof. reflexivity. Qed.
  Lemma pretty_Z_opp_9 : pretty (-9) = "-9".
  Proof. reflexivity. Qed.
  Lemma pretty_Z_opp_10 : pretty (-10) = "-10".
  Proof. reflexivity. Qed.
  Lemma pretty_Z_opp_100 : pretty (-100) = "-100".
  Proof. reflexivity. Qed.
  Lemma pretty_Z_opp_123456789 : pretty (-123456789) = "-123456789".
  Proof. reflexivity. Qed.
End Z.