aboutsummaryrefslogtreecommitdiff
path: root/engine/univGen.ml
diff options
context:
space:
mode:
authorFabian Kunze2020-11-27 20:58:19 +0100
committerFabian Kunze2020-12-04 00:23:36 +0100
commit0d1da885cc8ccfb9f995e5dcb0ed79e71e6020db (patch)
tree501e2a9a38fefb98d284a4c9fb8a4aeb0854086f /engine/univGen.ml
parenta88568e751d63d8db93450213272c8b28928dbf2 (diff)
Better primitive type support in custom string and numeral notations.
- float and array values are now supported for printing and parsing in custom notations (and in notations defined using the ocaml API) - the three constants bound to the primitive float, int and array type are now allowed anywhere inside a term to print, to handle them similar to `real` type constructors - Grants #13484: String notations for primitive arrays - Fixes #13517: String notation printing fails with primitive integers inside lists
Diffstat (limited to 'engine/univGen.ml')
-rw-r--r--engine/univGen.ml5
1 files changed, 5 insertions, 0 deletions
diff --git a/engine/univGen.ml b/engine/univGen.ml
index 6f27ccb7dc..278ca6bf34 100644
--- a/engine/univGen.ml
+++ b/engine/univGen.ml
@@ -65,6 +65,11 @@ let fresh_constructor_instance env c =
let u, ctx = fresh_global_instance env (GlobRef.ConstructRef c) in
(c, u), ctx
+let fresh_array_instance env =
+ let auctx = CPrimitives.typ_univs CPrimitives.PT_array in
+ let u, ctx = fresh_instance_from auctx None in
+ u, ctx
+
let fresh_global_instance ?loc ?names env gr =
let u, ctx = fresh_global_instance ?loc ?names env gr in
mkRef (gr, u), ctx