diff options
Diffstat (limited to 'theories/Strings')
-rw-r--r-- | theories/Strings/Ascii.v | 7 | ||||
-rw-r--r-- | theories/Strings/String.v | 6 |
2 files changed, 7 insertions, 6 deletions
diff --git a/theories/Strings/Ascii.v b/theories/Strings/Ascii.v index c2e88251..3dbd9cb4 100644 --- a/theories/Strings/Ascii.v +++ b/theories/Strings/Ascii.v @@ -1,7 +1,7 @@ (* -*- coding: utf-8 -*- *) (************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) -(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2014 *) +(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2015 *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) @@ -10,7 +10,7 @@ (** Contributed by Laurent Théry (INRIA); Adapted to Coq V8 by the Coq Development Team *) -Require Import Bool BinPos BinNat Nnat. +Require Import Bool BinPos BinNat PeanoNat Nnat. Declare ML Module "ascii_syntax_plugin". (** * Definition of ascii characters *) @@ -34,6 +34,7 @@ Definition shift (c : bool) (a : ascii) := (** Definition of a decidable function that is effective *) Definition ascii_dec : forall a b : ascii, {a = b} + {a <> b}. +Proof. decide equality; apply bool_dec. Defined. @@ -115,7 +116,7 @@ Proof. unfold N.lt. change 256%N with (N.of_nat 256). rewrite <- Nat2N.inj_compare. - rewrite <- Compare_dec.nat_compare_lt. auto. + now apply Nat.compare_lt_iff. Qed. diff --git a/theories/Strings/String.v b/theories/Strings/String.v index 34adf332..ac1f158a 100644 --- a/theories/Strings/String.v +++ b/theories/Strings/String.v @@ -1,7 +1,7 @@ (* -*- coding: utf-8 -*- *) (************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) -(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2014 *) +(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2015 *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) @@ -29,6 +29,7 @@ Local Open Scope string_scope. (** Equality is decidable *) Definition string_dec : forall s1 s2 : string, {s1 = s2} + {s1 <> s2}. +Proof. decide equality; apply ascii_dec. Defined. @@ -41,7 +42,6 @@ Fixpoint append (s1 s2 : string) : string := | EmptyString => s2 | String c s1' => String c (s1' ++ s2) end - where "s1 ++ s2" := (append s1 s2) : string_scope. (******************************) @@ -379,7 +379,7 @@ Definition findex n s1 s2 := (** The concrete syntax for strings in scope string_scope follows the Coq convention for strings: all ascii characters of code less than - 128 are litteral to the exception of the character `double quote' + 128 are literals to the exception of the character `double quote' which must be doubled. Strings that involve ascii characters of code >= 128 which are not |