Skip to content

TG-7 decision: braid == semantics — list-equality vs braid-group equivalence #50

Description

@hyperpolymath

Decision needed (owner)

TG-7 asks whether == on braids should decide braid-group equivalence rather than list equality.

Current state. == on braids is list equality in both compiler/lib/eval.ml and the Lean Step.eqBraids rule. A complete braid-group equivalence checker (Dehornoy handle reduction) now exists out-of-band as compiler/lib/braid_equiv.ml (tested in compiler/test/tg7, 2220 assertions). It does not change ==.

The fork:

  • (a) Change semantics — route == / Step.eqBraids through braid-group equivalence. Changes the observable semantics of == on braids; touches eval.ml and the Lean Step relation, rippling into the Progress / Preservation / Determinism proofs.
  • (b) Keep == as list equality — use braid_equiv only as a tool (tooling / compute-style checks), leaving language semantics unchanged.

A mechanised Lean Garside/Dehornoy correctness proof for braid_equiv is research-grade either way (tracked in the remaining-work issue).

Refs: PROOF-NEEDS.md (TG-7); landed at origin/main 5ed31f8.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions