Skip to content

feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for Seq: FriendlyOperation API#37342

Open
vasnesterov wants to merge 15 commits intoleanprover-community:masterfrom
vasnesterov:compute_asymptotics_corecursion_3
Open

feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for Seq: FriendlyOperation API#37342
vasnesterov wants to merge 15 commits intoleanprover-community:masterfrom
vasnesterov:compute_asymptotics_corecursion_3

Conversation

@vasnesterov
Copy link
Copy Markdown
Collaborator

This is a continuation of #35072.

This PR adds more API about friendly operations:

  • FriendlyOperation.coind: a coinductive principle for proving that operation is friendly
  • FriendlyOperationClass.eq_of_bisim: a generalisation of Seq.eq_of_bisim' for proving two sequences are equal.

This is a part of the compute_asymptotics tactic (#28291).

Open in Gitpod

@vasnesterov vasnesterov added t-meta Tactics, attributes or user commands t-data Data (lists, quotients, numbers, etc) labels Mar 29, 2026
@github-actions
Copy link
Copy Markdown

PR summary c00fe67bb4

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ FriendlyOperation.coind
+ FriendlyOperation.coind_comp_friend_left
+ FriendlyOperation.coind_comp_friend_right
+ FriendlyOperation.cons
+ FriendlyOperation.cons_tail
+ FriendlyOperation.destruct_apply_eq_unfold
+ FriendlyOperation.of_dist_le_pow
+ FriendlyOperation.op_cons_head_eq
+ FriendlyOperation.op_head_eq
+ FriendlyOperation.unfold
+ FriendlyOperationClass.eq_of_bisim
+ dist_const_tail_cons_tail_le
+ dist_le_half_iff
+ friendlyOperation_iff_dist_le_dist

You can run this locally as follows
## summary with just the declaration names:
./scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh contains some details about this script.


Increase in tech debt: (relative, absolute) = (4.00, 0.00)
Current number Change Type
6892 4 backward.isDefEq

Current commit 3e80d44598
Reference commit c00fe67bb4

You can run this locally as

./scripts/reporting/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@mathlib-dependent-issues
Copy link
Copy Markdown

@mathlib-dependent-issues mathlib-dependent-issues bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Mar 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) t-data Data (lists, quotients, numbers, etc) t-meta Tactics, attributes or user commands

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant