feat(goal): Subsumption #287

Open
aniva wants to merge 20 commits from goal/subsume into dev
Owner

Given a goal goal, and a list of solved goals mvarIds, determine if one of the goals in mvarIds subsumes goal. This is only a semi-solver, i.e. it will miss some cases when subsumption is possible.

  • Subsumption by completed goals
  • Detect cycle of parent goals
  • Cross-branch subsumption
  • Return subsumptor (the goal providing the solution or cue) relative to the subsumend (the goal being subsumed)
  • REPL Bindings
  • Do not subsume if a target is not of type Prop.
  • Preferentially subsume rather than cycle
Given a goal `goal`, and a list of solved goals `mvarIds`, determine if one of the goals in `mvarIds` subsumes `goal`. This is only a semi-solver, i.e. it will miss some cases when subsumption is possible. - [X] Subsumption by completed goals - [X] Detect cycle of parent goals - [X] Cross-branch subsumption - [X] Return subsumptor (the goal providing the solution or cue) relative to the subsumend (the goal being subsumed) - [X] REPL Bindings - [x] Do not subsume if a target is not of type `Prop`. - [x] Preferentially subsume rather than cycle
aniva self-assigned this 2025-08-20 20:44:22 -07:00
aniva added this to the v0.3.8 milestone 2025-08-21 13:07:18 -07:00
Author
Owner

How does this thing interact with have? It's worth investigating!

How does this thing interact with `have`? It's worth investigating!
Author
Owner

Subsumption on one state is largely useless. We need subsumption on two states.

Subsumption on one state is largely useless. We need subsumption on two states.
Author
Owner

Another question is how does this interact with unfold? Since we are testing for isDefEq, it may render unfold tactics impossible.

Another question is how does this interact with `unfold`? Since we are testing for `isDefEq`, it may render unfold tactics impossible.
This was caused by insufficient collection of dependencies. Moreover,
branch unification should filter out assigned goals.
This was caused by insufficient collection of dependencies. Moreover,
branch unification should filter out assigned goals.
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin goal/subsume:goal/subsume
git switch goal/subsume
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: aniva/Pantograph#287
No description provided.