Skip to content

Add useArrayTheory option, conditionally lower Core's Map operations to SMT Array#441

Open
aqjune-aws wants to merge 3 commits intomainfrom
jlee/map
Open

Add useArrayTheory option, conditionally lower Core's Map operations to SMT Array#441
aqjune-aws wants to merge 3 commits intomainfrom
jlee/map

Conversation

@aqjune-aws
Copy link
Contributor

This adds useArrayTheory option that conditionally lowers the select and update operations in Core (map_get and map_set rules in Core DDM) to SMT-LIB's Array theory operations.

Lots of helps from Kiro.

This pull request has overlapping edits with #414.

Issue #, if available:

Description of changes:

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@aqjune-aws aqjune-aws requested a review from a team as a code owner February 17, 2026 20:52
.ok (.app (Op.uf uf), smt_outty, ctx)
else
.ok (.app (Op.uf uf), smt_outty, ctx)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This change looks big, but in fact most of these lines are due to indentations. Turn on "Hide whitespace" on Github diff page and this diff will disappear.

Copy link
Contributor

@shigoel shigoel left a comment

Choose a reason for hiding this comment

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

LGTM in general, but would you be up for adding a test for a Core program that uses Maps to see how well it works using the Array theory? Perhaps https://github.com/strata-org/Strata/blob/main/StrataTest/Languages/Core/Examples/AdvancedMaps.lean?

@shigoel shigoel enabled auto-merge February 17, 2026 23:41
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.

2 participants