aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfilliatr2000-04-21 22:09:59 +0000
committerfilliatr2000-04-21 22:09:59 +0000
commit99cda3324ad90fc77e810f0412f44bf81df99371 (patch)
tree439229d94716529e073cc429d6ae467dca1e5e3c
parentc5471cf03d2d6aa2ba6ed9e2ce015aab1e45f536 (diff)
discharge des axiomes
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@366 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--library/declare.ml3
-rw-r--r--library/declare.mli1
-rw-r--r--parsing/lexer.mll2
-rw-r--r--toplevel/discharge.ml4
4 files changed, 8 insertions, 2 deletions
diff --git a/library/declare.ml b/library/declare.ml
index 5e87c1a749..51748a0204 100644
--- a/library/declare.ml
+++ b/library/declare.ml
@@ -189,6 +189,9 @@ let is_constant sp =
let constant_strength sp =
let (_,stre) = Spmap.find sp !csttab in stre
+let constant_or_parameter_strength sp =
+ try constant_strength sp with Not_found -> NeverDischarge
+
let is_variable id =
let sp = Nametab.sp_of_id CCI id in Spmap.mem sp !vartab
diff --git a/library/declare.mli b/library/declare.mli
index 8541c20921..470d6dee9d 100644
--- a/library/declare.mli
+++ b/library/declare.mli
@@ -43,6 +43,7 @@ val make_strength_2 : unit -> strength
val is_constant : section_path -> bool
val constant_strength : section_path -> strength
+val constant_or_parameter_strength : section_path -> strength
val is_variable : identifier -> bool
val out_variable :
diff --git a/parsing/lexer.mll b/parsing/lexer.mll
index e9b57a1f75..6a35d19dee 100644
--- a/parsing/lexer.mll
+++ b/parsing/lexer.mll
@@ -137,6 +137,8 @@ rule token = parse
{ ("INT", Lexing.lexeme lexbuf) }
| "(" | ")" | "[" | "]" | "{" | "}" | "." | "_"
{ ("", Lexing.lexeme lexbuf) }
+ | "->"
+ { ("", "->") }
| symbolchar+
{ ("", Lexing.lexeme lexbuf) }
| '`' [^'`']* '`'
diff --git a/toplevel/discharge.ml b/toplevel/discharge.ml
index 8de338b404..aa1e1e96b8 100644
--- a/toplevel/discharge.ml
+++ b/toplevel/discharge.ml
@@ -277,8 +277,8 @@ let process_object oldenv sec_sp (ops,ids_to_discard,work_alist) (sp,lobj) =
(Variable (id,expmod_a,stre,sticky) :: ops,
ids_to_discard,work_alist)
- | "CONSTANT" ->
- let stre = constant_strength sp in
+ | "CONSTANT" | "PARAMETER" ->
+ let stre = constant_or_parameter_strength sp in
if stre = (DischargeAt sec_sp) then
(ops, ids_to_discard, (Const sp, DO_REPLACE) :: work_alist)
else