Skip to content

Account for types of higher-order functions during typechecking#53

Merged
danbaterisna merged 9 commits into
masterfrom
append-fixes
Aug 26, 2025
Merged

Account for types of higher-order functions during typechecking#53
danbaterisna merged 9 commits into
masterfrom
append-fixes

Conversation

@danbaterisna

Copy link
Copy Markdown
Collaborator

Take the argument and return types of higher-order function calls into account during type checking. This deprecates the use of higher-order function names as predicates for results (i.e. f(a, b, ..., res) ) in staged specifications, instead preferring to use binds (see #52 for related work).

This addresses the instance of #51 I noticed during debugging, but unifying types of terms during rewriting remains disabled (although re-enabling unification of term types does not seem to break anything at the moment).

Also adds some tweaks to the debug spans to resolve #47.

Comment thread lib/hipprover/rewriting.ml Outdated
@VietAnh1010

VietAnh1010 commented Aug 22, 2025

Copy link
Copy Markdown
Collaborator

Keep this PR small and clean, and let's merge this PR early.

Afterward, fix the type var unification problem: go through the all the places where rewriting rules are created (say, to unfold predicates, after the definitions), and add necessary modifications. This will be necessary before I can start fixing inductive proofs.

Comment thread lib/hiplib/hiplib.ml Outdated

@VietAnh1010 VietAnh1010 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM, this can be merged now.

@danbaterisna danbaterisna merged commit 4c78c64 into master Aug 26, 2025
1 check passed
@danbaterisna danbaterisna deleted the append-fixes branch August 26, 2025 04:47
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.

More structure debugging

2 participants