·
111 commits
to main
since this release
Changes to the Rust Engine:
- Rename
GenericConstraint::TypetoTypeClassand::ProjectiontoEquality(#1996) - Remove
BinOpresugaring (#1950) - Apply resugarings to linked items (pre/post conditions) (#1961)
- Add new import_thir implemented in Rust and using
FullDef, activated with--experimental-full-def(#1967)
Changes to the engine:
- Omit type aliases whose body has unresolvable trait bounds instead of crashing (#2014)
- Report let-chains (
if let .. && let ..) as a soft error instead of panicking (#2014)
Changes to the frontend:
- Fix support for ellipsis: add wildcard for every field (based on type info
rather than number of subpatterns) (#2001) - Fix panic on constants of type
&[&T](e.g.&[&str]) caused by a wrong type for the synthesized array length (#2014)
Changes to cargo-hax:
Changes to hax-lib:
- Lean lib: use Rust core models (#1865)
- Lean lib: specs for negation (#1891)
- Lean lib: Add casting for all integer type pairs (#1837)
- Lean lib: bump lean to v4.28.0-rc1 (#1900)
- Lean lib: Extract more core models (#1919)
- Lean lib: Separate symbolic and bit-blasting specs (#1933)
- Lean lib: Communicate user-generated specs to mvcgen (#1937)
- Lean lib: Rust primitives for prop (#1942)
- Lean lib: For-loops for all unsigned integers (#1951)
- Lean lib: Upgrade to Lean v4.29.0-rc1 (#1962)
- Lean lib: Add support for Int128 and UInt128 while waiting for upstream in Lean (#1968)
- Lean lib: Refactor
RustMasExceptT Error Option(#1994) - Lean lib: Add Repr instance for tuples (#2000)
- Lean lib: Make the proof of
RustM.toBVRustM_bindcompatible with Lean 4.29.0 (#2005) - F* lib: Add bit-extensionality (
lemma_int_t_eq_via_bits), concreteCore_models.Num.impl_u64__rotate_leftdelegating to a newRust_primitives.Integers.rotate_left_u,logand_commutative, fixedbit_orSMTPat semantics,bit_xor/get_bit_xor/get_bit_lognotSMTPats, andRust_primitives.Hax.Monomorphized_update_at_Lemmas.lemma_index_update_at_rangefor libcrux SHA-3 equivalence proofs
Changes to the Lean backend:
- Add
hax_zifyandhax_construct_puretactics (#1888) - Add support for opaque
impls (#1887) - Fix support for associated constants in trait impls (#1906)
- Gather definitions in namespaces, shortening names (#1901)
- Add support for associated types with constraints and inheritance (#1909)
- Fix bug with monadic wrapping of trait constants (#1929)
- Add type annotation for cast_op (#1925)
- Add attributes for pureEnsures/pureRequires (#1931)
- Extract correct
PhantomDatastructure (#1932) - Standardize generated Lean naming to lowercase namespaces (#1914)
- Fix associated constants with default values (#1941)
- New default proof for the Lean backend & proof method attribute (#1938)
- Prettier proof_mode annotations (#1943)
- Detect recursive functions and mark them partial_fixpoint (#1946)
- Add more binops (#1963)
- Add a resugaring for ellipsis patterns (#2002)
Miscellaneous:
- Fix Nix development shell: add an
fstardevShell providing F* and the
required environment variables (#1972)