# Add a real two-domain CDC bridge to the corpus, fix domain-labeled bools · versecafe/strata

[View on GitCafe](https://git.cafe/versecafe/strata/commit/f2758b4b975cd2937fe4da67f2dd7d5da7db16a5)

Repository: [versecafe/strata](https://git.cafe/versecafe/strata)

Visibility: public

Requested revision: f2758b4b975cd2937fe4da67f2dd7d5da7db16a5

Requested commit: f2758b4b975cd2937fe4da67f2dd7d5da7db16a5

Commit: f2758b4b975cd2937fe4da67f2dd7d5da7db16a5

Tree: acf4bbc3c062af918d3989af7f71f0a67e746f73

Author: versecafe

Committer: versecafe

## Message

```
Add a real two-domain CDC bridge to the corpus, fix domain-labeled bools

crates/strata-cli/tests/fixtures/cdc-bridge.strata is a genuine
PulseSync (toggle-flop + 2-flop synchronizer) crossing domains 'a to
'b, marked unsafe(clock_crossing) and checking with zero findings.
Its sibling with the qualifier removed is correctly rejected by
cdc_unbridged_domain_crossing at the real sync0 <- toggle crossing —
a much stronger negative test than the earlier synthetic fixture.

Building it surfaced a real inconsistency: is_bool/is_equality_type
matched TypeKind::Named directly without stripping Stamped domain
labels, while types_equal already treats Stamped transparently
("structural type equality is domain-oblivious"). That made !, &&,
||, ==, !=, and if unusable on any domain-labeled Bool, which is
exactly the control flow a real synchronizer needs. Fixed for
consistency with the documented domain-oblivious equality rule.

Also adds fifo-bug-reset-width.strata, a same-family (UInt/UInt)
width-mismatched reset bug distinct from the existing Bool/UInt
reset-mismatch fixture.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

```

## Parents

- [4ffcb40a54a23b4c84d5527d43e7d3987deb546e](https://git.cafe/versecafe/strata/commit/4ffcb40a54a23b4c84d5527d43e7d3987deb546e?format=markdown)

[Source at this commit](https://git.cafe/versecafe/strata/tree/f2758b4b975cd2937fe4da67f2dd7d5da7db16a5?format=markdown)
