PR #970 gives us the following behavior. Seems like a bug in EasyCrypt itself?
require import AllCore List Perms.
print allperms_r.
(*
op allperms_r ['a] (n : unit list)
(s : 'a list) : 'a list list =
with n = "[]" => [[]]
with n = (::) x n0 => flatten
(map
(fun (x0 : 'a) =>
map ((::) x0) (allperms_r n0 (rem x0 s)))
(undup s)).
*)
lemma foo (ns ms : int list) :
ms \in allperms ns.
proof.
rewrite /allperms.
(* ms \in allperms_r (nseq (size ns) tt) ns *)
smt().
(* Ident Top_Perms_allperms_r is not yet declared *)
PR #970 gives us the following behavior. Seems like a bug in EasyCrypt itself?