-
Notifications
You must be signed in to change notification settings - Fork 1.2k
tactic porting tracking issue #430
Description
This issue parallels the content of Mathlib/Mathport/Syntax.lean, tracking the remaining work to port mathlib3 tactics to mathlib4, but also contains "ephemeral" information that does not belong in that file.
Primarily, this issue contains a list of tactics (or groups of tactics), along with any relevant information about work-in-progress (e.g. people who've "claimed" a tactic, PRs, abandoned work, etc). Some "claims" are probably out-of-date. Feel free to remove yourself from anything here without explanation!
We hope that everyone will edit this freely to try to keep it up to date.
Currently this is in the same order as Syntax.lean (although with tactics we might skip or only "stub" deferred to the end), but it may be worthwhile to turn this into a prioritised list.
🔹 – unclaimed
◼️ – claimed
☑️ – PR'd, unneeded, or otherwise done
E: Easy. It's a simple macro in terms of existing things,
or an elab tactic for which we have many similar examples. Example: left
M: Medium. An elab tactic, not too hard, perhaps a 100-200 lines file. Example: have
N: Possibly requires new mechanisms in lean 4, some investigation required
B: Hard, because it is a big and complicated tactic
S: Possibly easy, because we can just stub it out or replace with something else
?: uncategorized
- 🔹
Nparameter- there is a proposal in terms of nullary typeclasses
- ☑️
Sabstract- ported in core as
as_aux_lemma
- ported in core as
- ☑️
Bcc - 🔹
Munfold_projs- there are some porting notes that should be reviewed, to decide if we're just missing simp lemmas, or really want this tactic
- 🔹
Ntry_for- Started by @bollu, but connect maxHeartbeats in CoreM to kernel variable max_heartbeats leanprover/lean4#1364 stalled. @bollu is no longer working on it
- ☑️
Sclean - ☑️
Srefine_struct- Use
refine'with built-in..syntax, e.g.refine' { x := 0, y := 1 .. }
- Use
- 🔹
Mmatch_hyp - 🔹
Nfield/Shave_field/Sapply_field - 🔹
Mh_generalize - ☑️
Mcongrm - ☑️
Eac_change - 🔹
Mdecide! - 🔹
Mdelta_instance - 🔹
Mgeneralizes - ☑️
Bitauto - 🔹
Bobviously - 🔹
Massoc_rw - 🔹
Sdsimp_result/Nsimp_result - 🔹
Mtrunc_cases - 🔹
Eapply_normed - ◼️
Mmono- A quick version is PR'd as [Merged by Bors] - feat: quick version of mono tactic #1740
- @thorimur is working on the full version
- 🔹
Bac_mono - 🔹
Munfold_cases - 🔹
Bequiv_rw - ☑️
Nnth_rw- PR'd as [Merged by Bors] - feat: port
nth_rewrite#823, although this doesn't actually reproduce the mathlib3 behaviour
- PR'd as [Merged by Bors] - feat: port
- ☑️
Mcompute_degree_le - 🔹
Mpadic_index_simp - ☑️
EuniqueDiffWithinAt_Ici_Iic_univ - ☑️
Mghost_fun_tac - ☑️
Mghost_calc - ☑️
Minit_ring - ☑️
Eghost_simp - ☑️
Ewitt_truncate_fun_tac - ☑️
Mpure_coherence/Mcoherence - 🔹 (
convmode)E[norm_num][norm_num-conv] /E[norm_num1][norm_num1-conv] - ☑️ (attribute)
?protect_proj- Not needed because
protectedcan be used for constructors.
- Not needed because
- ☑️ (attribute)
Mnotation_class - ◼️ (attribute)
Mmono- A quick version is PR'd as [Merged by Bors] - feat: quick version of mono tactic #1740
- @thorimur is working on the full version
- ☑️
Nadd_tactic_doc - 🔹 (command)
Nmk_simp_attribute - ☑️ (command)
Madd_hint_tactic@Komyyy PR'd as feat: port tactichint#5363- @semorrison PR'd as [Merged by Bors] - feat: the 'hint' tactic #8363 and renamed to
register_hint
- 🔹 (command)
Ndef_replacer - 🔹 (command)
Mreassoc_axiom
We then have a number of tactics and commands for which mere stubs will suffice for the port. Sometimes this is because the tactic is only used during development (but not in PRs to mathlib), other times because it is not used at all anymore in mathlib.
- 🔹 (attribute)
Sintro/Sintro! - 🔹
Spropagate_tags- PR'd as feat: propagate_tags tactic #258 (abandoned?)
- 🔹
?quote/?pquote/?ppquote - 🔹
Smapply - 🔹
Sdestruct - 🔹
Srsimp - ☑️
Scomp_val- Use
decide.
- Use
- 🔹
Sasync - 🔹
Scontinue - ☑️
Sextract_goal - 🔹
Srevert_deps - 🔹
Srevert_after - ☑️
Srevert_target_deps - 🔹
Srcases? - 🔹
Srintro? - ☑️
Shint@Komyyy PR'd as feat: port tactichint#5363- @semorrison PR'd as [Merged by Bors] - feat: the 'hint' tactic #8363
- 🔹
Sclarify/Ssafe/Sfinish - 🔹
Scases''/Sinduction'' - 🔹
Spretty_cases - 🔹
Ssuggest - ☑️
Somega - 🔹
Stransport - ☑️
Srw_search- @semorrison PR'd as [Merged by Bors] - feat: the
rw_searchtactic #6120
- @semorrison PR'd as [Merged by Bors] - feat: the
- ☑️
Smk_decorations - ☑️
Smv_bisim - @Komyyy PR'd as [Merged by Bors] - feat: port Data.QPF.Multivariate.Constructions.Cofix #2444
- 🔹
Ssubtype_instance - 🔹
Selide/Sunelide - ☑️
Sguard_tags- PR'd as feat: propagate_tags tactic #258
- 🔹
Sguard_proof_term - ☑️
Sfail_if_success - ☑️ (command)
Ssetup_tactic_parser- This command is not needed because
?and*notations for sytaxes are available without a command.
- This command is not needed because
- 🔹 (command)
S#list_unused_decls - ☑️ (command)
S#simp - ☑️ (command)
S#where - ☑️ (command)
S#sample