🖇️ Articulation and Syntax Processing #213
Labels
No Label
category
bug
category
chore
category
doc
category
feature
category
optimization
category
organization
part/Delation
part/Elab
part/Environment
part/FFI
part/Frontend
part/Goal
part/REPL
part/Serial
priority
high
priority
irrelevant
priority
low
priority
medium
priority
pending-measurement
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Depends on
#220 feat(frontend): Tomogram
aniva/Pantograph
Reference: aniva/Pantograph#213
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A couple of features are missing which could be useful.
Articulation
A search which can be concluded in Pantograph does not immediately yield usable Lean code. This is because of the divergence between the search and presentation views.
The main challenge of an articulator is the divergence between the syntax and expression. For example,
repeat sorry
would solve all goals withsorry
. If we use this to perform drafting, at the conclusion of the goal, an articulator would need to unroll therepeat
tactic combinator. The existence of such tactic combinators is difficult to handle. For example, one could also dorepeat (simp <;> sorry)
as a drafting tactic.Proof Portability and Efficiency
The most efficient form of storing a proof for further checking is the proof term as an
.olean
file. This format is fragile and not portable between Lean versions. On the other hand, a proof stored entirely in tactic form is not universally portable either since the behaviour of many tactics is volatile.I suspect the best way to write such portable proofs is to use very simple tactics such as
apply
orrewrite
. This is something the articulator could handle.Decomposition
Also called "Lemma Condensation" in Trillium, this involves collecting hot spots in a proof and extracting them as lemmas. It is also one of the goals of the ExpMath project.
Syntax-Level Processing
Language model researchers want to be able to execute tactics in a line. For example,
should return "case ... not handled". An agent seeing this feedback could supply the case:
To implement this, we could have a syntax prefix stored in every goal object as a "partial solution". When new syntaxes come in, they could be elaborated in conjunction.
#220 gives a tool for analyzing the order of
MetaM
(and below) execution across a Lean file. It is still WIP.Tracker: Articulation and Syntax Processingto 🖇️ Articulation and Syntax ProcessingI suspect articulation will have to work like Project No. 3 in Trillium, where we need to have a combination of syntax and expression based processing.