Skip to content

Commit

Permalink
Add external Ltac2.Constr.equal_nounivs
Browse files Browse the repository at this point in the history
We'll connect it up after doing a performance measurement
  • Loading branch information
JasonGross committed Oct 1, 2022
1 parent abeddca commit ed41cbb
Show file tree
Hide file tree
Showing 20 changed files with 125 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ src/Rewriter/Util/plugins/definition_by_tactic_plugin.ml
src/Rewriter/Util/plugins/inductive_from_elim_plugin.ml
src/Rewriter/Util/plugins/rewriter_build_plugin.ml
src/Rewriter/Util/plugins/strategy_tactic_plugin.ml
src/Rewriter/Util/plugins/ltac2_extra_plugin.ml

src/Rewriter/Util/plugins/RewriterBuildRegistry.v
src/Rewriter/Util/plugins/RewriterBuild.v
Expand All @@ -114,6 +115,10 @@ src/Rewriter/Util/plugins/strategy_tactic.ml
src/Rewriter/Util/plugins/strategy_tactic.mli
src/Rewriter/Util/plugins/strategy_tactic_plugin.mlg
src/Rewriter/Util/plugins/strategy_tactic_plugin.mllib
src/Rewriter/Util/plugins/ltac2_extra.ml
src/Rewriter/Util/plugins/ltac2_extra.mli
src/Rewriter/Util/plugins/ltac2_extra_plugin.mlg
src/Rewriter/Util/plugins/ltac2_extra_plugin.mllib

/.coq-version
/.coq-version-compilation-date
Expand Down
3 changes: 3 additions & 0 deletions Makefile.local-late
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ OTHERFLAGS += -w -notation-overridden
ifneq ($(PROFILE),)
OTHERFLAGS += -profile-ltac
endif

# Kludge around COQBUG(https://github.com/coq/coq/issues/16591)
FINDLIBPKGS += -package coq-core.plugins.ltac2
5 changes: 5 additions & 0 deletions Makefile.local.common
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,12 @@ COMPATIBILITY_FILES := \
src/Rewriter/Util/plugins/strategy_tactic.mli \
src/Rewriter/Util/plugins/strategy_tactic_plugin.mlg \
src/Rewriter/Util/plugins/strategy_tactic_plugin.mllib \
src/Rewriter/Util/plugins/ltac2_extra.ml \
src/Rewriter/Util/plugins/ltac2_extra.mli \
src/Rewriter/Util/plugins/ltac2_extra_plugin.mlg \
src/Rewriter/Util/plugins/ltac2_extra_plugin.mllib \
src/Rewriter/Util/plugins/RewriterBuildRegistry.v \
src/Rewriter/Util/plugins/RewriterBuild.v \
src/Rewriter/Util/plugins/StrategyTactic.v \
src/Rewriter/Util/plugins/Ltac2Extra.v \
#
8 changes: 7 additions & 1 deletion _CoqProject.in
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,12 @@ src/Rewriter/Util/plugins/strategy_tactic.ml
src/Rewriter/Util/plugins/strategy_tactic.mli
src/Rewriter/Util/plugins/strategy_tactic_plugin.mlg
src/Rewriter/Util/plugins/strategy_tactic_plugin.mllib
src/Rewriter/Util/plugins/ltac2_extra.ml
src/Rewriter/Util/plugins/ltac2_extra.mli
src/Rewriter/Util/plugins/ltac2_extra_plugin.mlg
src/Rewriter/Util/plugins/ltac2_extra_plugin.mllib
src/Rewriter/Util/plugins/RewriterBuildRegistry.v
src/Rewriter/Util/plugins/StrategyTactic.v
src/Rewriter/Util/plugins/RewriterBuild.v
src/Rewriter/Util/plugins/StrategyTactic.v
src/Rewriter/Util/plugins/Ltac2Extra.v

10 changes: 10 additions & 0 deletions src/Rewriter/Util/plugins/Ltac2Extra.v.v815
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Require Import Ltac2.Ltac2.

Declare ML Module "ltac2_extra".

Module Ltac2.
Module Constr.
Export Ltac2.Constr.
Ltac2 @ external equal_nounivs : constr -> constr -> bool := "ltac2" "constr_equal_nounivs".
End Constr.
End Ltac2.
10 changes: 10 additions & 0 deletions src/Rewriter/Util/plugins/Ltac2Extra.v.v816
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Require Import Ltac2.Ltac2.

Declare ML Module "coq-rewriter.ltac2_extra".

Module Ltac2.
Module Constr.
Export Ltac2.Constr.
Ltac2 @ external equal_nounivs : constr -> constr -> bool := "ltac2" "constr_equal_nounivs".
End Constr.
End Ltac2.
10 changes: 10 additions & 0 deletions src/Rewriter/Util/plugins/Ltac2Extra.v.v817
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Require Import Ltac2.Ltac2.

Declare ML Module "coq-rewriter.ltac2_extra".

Module Ltac2.
Module Constr.
Export Ltac2.Constr.
Ltac2 @ external equal_nounivs : constr -> constr -> bool := "ltac2" "constr_equal_nounivs".
End Constr.
End Ltac2.
9 changes: 9 additions & 0 deletions src/Rewriter/Util/plugins/META.coq-rewriter
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,13 @@ package "rewriter_build" (
plugin(byte) = "rewriter_build_plugin.cma"
plugin(native) = "rewriter_build_plugin.cmxs"
)
package "ltac2_extra" (
directory = "."
description = "Coq Ltac2 Extra Tactics"
requires = "coq-core.plugins.ltac2"
archive(byte) = "ltac2_extra_plugin.cma"
archive(native) = "ltac2_extra_plugin.cmxa"
plugin(byte) = "ltac2_extra_plugin.cma"
plugin(native) = "ltac2_extra_plugin.cmxs"
)
directory = "."
19 changes: 19 additions & 0 deletions src/Rewriter/Util/plugins/ltac2_extra.ml.v815
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
open Ltac2_plugin
open Tac2ffi
open Tac2expr
open Proofview.Notations

let pname s = { mltac_plugin = "coq-core.plugins.ltac2"; mltac_tactic = s }

let define_primitive name arity f =
Tac2env.define_primitive (pname name) (Tac2ffi.mk_closure arity f)

let define2 name r0 r1 f = define_primitive name (arity_suc arity_one) begin fun x y ->
f (Tac2ffi.repr_to r0 x) (Tac2ffi.repr_to r1 y)
end

let () = define2 "constr_equal_nounivs" constr constr begin fun c1 c2 ->
Proofview.tclEVARMAP >>= fun sigma ->
let b = EConstr.eq_constr_nounivs sigma c1 c2 in
Proofview.tclUNIT (Tac2ffi.of_bool b)
end
19 changes: 19 additions & 0 deletions src/Rewriter/Util/plugins/ltac2_extra.ml.v816
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
open Ltac2_plugin
open Tac2ffi
open Tac2expr
open Proofview.Notations

let pname s = { mltac_plugin = "coq-core.plugins.ltac2"; mltac_tactic = s }

let define_primitive name arity f =
Tac2env.define_primitive (pname name) (Tac2ffi.mk_closure arity f)

let define2 name r0 r1 f = define_primitive name (arity_suc arity_one) begin fun x y ->
f (Tac2ffi.repr_to r0 x) (Tac2ffi.repr_to r1 y)
end

let () = define2 "constr_equal_nounivs" constr constr begin fun c1 c2 ->
Proofview.tclEVARMAP >>= fun sigma ->
let b = EConstr.eq_constr_nounivs sigma c1 c2 in
Proofview.tclUNIT (Tac2ffi.of_bool b)
end
19 changes: 19 additions & 0 deletions src/Rewriter/Util/plugins/ltac2_extra.ml.v817
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
open Ltac2_plugin
open Tac2ffi
open Tac2expr
open Proofview.Notations

let pname s = { mltac_plugin = "coq-core.plugins.ltac2"; mltac_tactic = s }

let define_primitive name arity f =
Tac2env.define_primitive (pname name) (Tac2ffi.mk_closure arity f)

let define2 name r0 r1 f = define_primitive name (arity_suc arity_one) begin fun x y ->
f (Tac2ffi.repr_to r0 x) (Tac2ffi.repr_to r1 y)
end

let () = define2 "constr_equal_nounivs" constr constr begin fun c1 c2 ->
Proofview.tclEVARMAP >>= fun sigma ->
let b = EConstr.eq_constr_nounivs sigma c1 c2 in
Proofview.tclUNIT (Tac2ffi.of_bool b)
end
Empty file.
Empty file.
Empty file.
1 change: 1 addition & 0 deletions src/Rewriter/Util/plugins/ltac2_extra_plugin.mlg.v815
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DECLARE PLUGIN "coq-rewriter.ltac2_extra"
1 change: 1 addition & 0 deletions src/Rewriter/Util/plugins/ltac2_extra_plugin.mlg.v816
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DECLARE PLUGIN "coq-rewriter.ltac2_extra"
1 change: 1 addition & 0 deletions src/Rewriter/Util/plugins/ltac2_extra_plugin.mlg.v817
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DECLARE PLUGIN "coq-rewriter.ltac2_extra"
2 changes: 2 additions & 0 deletions src/Rewriter/Util/plugins/ltac2_extra_plugin.mllib.v815
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Ltac2_extra
Ltac2_extra_plugin
2 changes: 2 additions & 0 deletions src/Rewriter/Util/plugins/ltac2_extra_plugin.mllib.v816
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Ltac2_extra
Ltac2_extra_plugin
2 changes: 2 additions & 0 deletions src/Rewriter/Util/plugins/ltac2_extra_plugin.mllib.v817
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Ltac2_extra
Ltac2_extra_plugin

0 comments on commit ed41cbb

Please sign in to comment.