Xavier Denis

Results 113 comments of Xavier Denis

I've written a document here: https://hackmd.io/CuEgMe-oSau4oj2UwNSx4g .

Is it not translated to `absurd`? It should be. By the way I believe rust has a `assume` intrinsic which you could use here.

Yea, this wouldn't be documented in `creusot-contracts` as the intrinsic will get lowered to a specific MIR construct, not a function call.

``` pub fn uint_to_int(uty: &UintTy) -> Exp { match uty { UintTy::Usize => Exp::impure_qvar(QName::from_string("UIntSize.to_int").unwrap()), UintTy::U8 => unimplemented!(), UintTy::U16 => unimplemented!(), UintTy::U32 => Exp::impure_qvar(QName::from_string("UInt32.to_int").unwrap()), UintTy::U64 => Exp::impure_qvar(QName::from_string("UInt64.to_int").unwrap()), UintTy::U128 => unimplemented!(), }...

> Now that https://github.com/xldenis/creusot/pull/488 has been merged this seems to have become a soundness issue. Yea, the example given above demonstrates that. Allowing access to prophetic information in ghost code...

> Currently, there doesn't seem to be much difference between predicates and logic functions (that return bool), so I wonder if it would work to forbid calling predicates in logic...

Does `rustc` ignore unknown cfgs ? If so I'll see how we can add this

Great, I'll work on setting up Creusot to set this cfg then

Additionally, it would be good to have a systematic way to validate external specifications... I know they are trusted and thus fundamentally axioms, but in some cases they can be...