Skip to content

Derive Fintype for curve points computably - #11

Merged
daira merged 1 commit into
mainfrom
computable-fintype
Jul 22, 2026
Merged

Derive Fintype for curve points computably#11
daira merged 1 commit into
mainfrom
computable-fintype

Conversation

@daira

@daira daira commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Fixes #10.

instFintypeSWPoint makes SWPoint E computably finite whenever the base field is. The enumeration is a plain filter of F × F under the decidable Valid predicate. It lives in ShortWeierstrass, next to equivSubtype, whose docstring already promised it. CurveOrder's Finite instance is now derived, so it has been removed.

The named Pallas.fintypePoints / Vesta.fintypePoints instantiations are pinned in the trust census with assert_computable +choice. Choice enters only through erased Prop fields of the Mathlib Finset lemmas. The primality Facts are Pratt-certified, so the concrete instantiations carry no native_decide trust.

The instance is parametric. A noncomputable Fintype F at some other use site would still resolve; it would merely make that use site noncomputable. For ZMod q the dictionary is computable via Fin.

zcash/ironwood#83 consumes this to make globalReachSet/splitFamilyRand computable.

🤖 Claude Fable 5

Upgrade the Finite instance for SWPoint to a computable Fintype. The
subtype equivalence composed with the decidable Valid predicate makes
the point enumeration a plain filter of F x F. The instance lives next
to equivSubtype in ShortWeierstrass, upstream of the concrete curves.
Named Pallas/Vesta instantiations pin the concrete enumerations in the
trust census at the +choice tier. Choice enters only through erased
Prop fields. The primality Facts are Pratt-certified, so no native
trust is involved.

Fixes #10.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

@daira daira left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-ACK

@daira
daira merged commit a549e45 into main Jul 22, 2026
2 checks passed
@daira
daira deleted the computable-fintype branch July 22, 2026 02:40
daira added a commit to daira/ironwood that referenced this pull request Jul 22, 2026
CompElliptic now derives Fintype for curve points computably
(daira/CompElliptic#11). Bump the dependency and remove the
Fintype.ofFinite materializations. globalReachSet and splitFamilyRand
(both variants) become plain defs. The trust-boundary guards pass
unchanged. The book's scoped-exception paragraph is removed.

Fixes zcash#83.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Derive Fintype for Pallas/Vesta computably

1 participant