Skip to content

Recursively exclude examples/incomplete from testing targets#1

Merged
strub merged 2 commits intoEasyCrypt:1.0from
fdupress:1.0
Sep 28, 2017
Merged

Recursively exclude examples/incomplete from testing targets#1
strub merged 2 commits intoEasyCrypt:1.0from
fdupress:1.0

Conversation

@fdupress
Copy link
Copy Markdown
Member

@fdupress fdupress commented Aug 2, 2017

This extends the runtest script with recursive exclusions, and makes the examples/incomplete exclusion recursive.

Submitted as a pull request for code review/refactoring and checking that it does not break things downstream.

@fdupress fdupress requested a review from strub August 8, 2017 09:06
@strub strub merged commit 89fb774 into EasyCrypt:1.0 Sep 28, 2017
strub added a commit that referenced this pull request Apr 30, 2026
…hange)

Splits the existing TcCtt resolution logic into three named local helpers — strat_tvar_via_tvtc, strat_abs_via_decl, strat_infer_by_carrier — corresponding to catalog modes #5, #6, and #1/#2 in doc/typeclasses-inference.md.

Behavior is identical: same dispatch order, same failures, same pickup of [Tvar a]/[Tconstr p] cases, same parking of univar carriers. The refactor exists so Phase 3 can drop a By-args strategy in without disturbing the existing logic.
strub added a commit that referenced this pull request Apr 30, 2026
Adds Mode #3 from doc/typeclasses-inference.md: when a TcCtt has a Tunivar carrier, walk all instances and pick the unique one whose tc_args match (Tunivars in the goal are wildcards for matching). On a unique match, push TyUni equations binding goal Tunivars to the candidate's substituted patterns and the carrier to tci_type; the deferred witness is then produced by Mode #1 on re-fire.

Also restores deref_tc inside eq_tc which Phase 2's refactor inadvertently dropped — needed because tvtc stores TC constraints with Tunivars that get merged in [uf] later.

Lax matching: TyMatch.doit_type now treats Tunivar on the [ty] side as a wildcard (matches any pattern). Safe because the downstream [check_tcinstance] post-match still requires every instance tparam to be bound, so partial matches are rejected at the final witness-construction step.

Closes the bare-op gap for parametric-carrier multi-param TCs:
[multi-param-bare-ops.ec](tests/tc/multi-param-bare-ops.ec) covers four
shapes: bare both sides, in a lemma, fixed result type only, fixed
source type only.

multi-param.ec simplified to use bare ops where applicable.
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