Skip to content

Hide concrete output expression from the calling circuit #322

Open

Description

@pirapira

When we have a circuit calling a sub-circuit, Clean tries to be compositional but not quite. Because we see goals like

add example

where a very big implementation detail is shown as the output of a sub-circuit.

This issue keeps track of hiding the implementation details of sub-circuit by adding a new variable in the context, together with a hypothesis saying that the variable satisfies the specification of the sub-circuit.

Approaches

  • circuit_proof_start can introduce fresh variables for outputs and forget their definitions.
  • ConstraintsHold can be modified so that a fresh existentially quantified variable is used instead of the output.

Current experiences

People notice big implementation details sometimes:

Activity

  1. self-assigned this
    on Jan 5, 2026
  2. pirapira commented on Jan 5, 2026

    @pirapira
    CollaboratorAuthor

    Assigned myself to finish the description of the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions