je peux fusionner deux cartes finies comme suit:Comment fusionner un ensemble de cartes finies?
value "fmadd
(fmap_of_list [(1::nat,2::nat)])
(fmap_of_list [(2::nat,3::nat)])"
Mais lorsque je tente de fusionner un ensemble de cartes:
value "ffold fmadd fmempty {|
fmap_of_list [(1::nat,2::nat)],
fmap_of_list [(2::nat,3::nat)]|}"
Je reçois l'erreur suivante:
Wellsortedness error:
Type nat ⇀⇩f nat not of sort finite
No type arity fmap :: finite
Selon à la définition de fmap
, son domaine est fini:
typedef ('a, 'b) fmap = "{m. finite (dom m)} :: ('a ⇀ 'b) set"
morphisms fmlookup Abs_fmap
proof
show "Map.empty ∈ {m. finite (dom m)}"
by auto
qed
Mais pourquoi fmap
n'est pas fini?