-
Notifications
You must be signed in to change notification settings - Fork 679
Decouple Ltac2 from Corelib #20385
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I think currently the main obstacle is that Ltac2 provides Maybe we could reduce the ltac2 dependency to just Corelib.Init.Ltac using an indirection, something like (* Corelib.Init.Ltac *)
(* current content + *)
Ltac easy := fail "Corelib.Init.Tactics not loaded".
(* Corelib.Init.Tactics *)
(* after Ltac easy := big code: *)
Ltac Ltac.easy ::= easy. and use Corelib.Init.Ltac in Ltac2.Notations. |
Okay, cool. I see the use of conjunction in that tactic. Are any other tactics in Or maybe the Ltac2 |
This does not entirely remove the dependency on corelib as we still need ltac1. We also add a forward declaration for `easy` in Init.Ltac as it is used in Ltac2.Notations. cf rocq-prover#20385
This does not entirely remove the dependency on corelib as we still need ltac1. We also add a forward declaration for `easy` in Init.Ltac as it is used in Ltac2.Notations. cf rocq-prover#20385
This does not entirely remove the dependency on corelib as we still need ltac1. We also add a forward declaration for `easy` in Init.Ltac as it is used in Ltac2.Notations. cf rocq-prover#20385
This does not entirely remove the dependency on corelib as we still need ltac1. We also add a forward declaration for `easy` in Init.Ltac as it is used in Ltac2.Notations. cf rocq-prover#20385
This does not entirely remove the dependency on corelib as we still need ltac1. We also add a forward declaration for `easy` in Init.Ltac as it is used in Ltac2.Notations. cf rocq-prover#20385
This does not entirely remove the dependency on corelib as we still need ltac1. We also add a forward declaration for `easy` in Init.Ltac as it is used in Ltac2.Notations. cf rocq-prover#20385
This does not entirely remove the dependency on corelib as we still need ltac1. We also add a forward declaration for `easy` in Init.Ltac as it is used in Ltac2.Notations. cf rocq-prover#20385
This does not entirely remove the dependency on corelib as we still need ltac1. We also add a forward declaration for `easy` in Init.Ltac as it is used in Ltac2.Notations. cf rocq-prover#20385
Is your feature request related to a problem?
This is a feature request to remove the dependencies of Ltac2 on Corelib so that Corelib is not loaded when Ltac2 is loaded, motivated by the desire to be as compatible as possible with the CoqHoTT library.
Ideally
Require Ltac2.Ltac2
would not causeCorelib.Init.Logic
to be loaded. The modules are all qualified so it's unlikely that the Prop-valued equality would be used accidentally, but it would still be preferable not to load the files defining Prop-valued equality at all.I'm not sure how realistic this is. Probably an easier target would be to remove the dependence of Ltac2 on the various plugins implementing powerful tactics:
Proposed solution
No response
Alternative solutions
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: