Isabelle に次のコードがあります。
typedecl type1
typedecl type2
consts
A::"type1 set"
B::"type2 set"
以下のように A と B でユニオン演算を使用したい場合:
axiomatization where
c0: "A ∩ B = {}"
A と B は異なる型のセットなので、型の衝突のエラーが発生します。これは理にかなっています!
暗黙的にオペランドを純粋なセットと見なす (つまり、その型を無視する) 集合演算に対応するものがあるかどうか疑問に思っています。したがって、 A ∩' B のようなものが可能になります ( ∩' は上記の意味での ∩ 演算の対応物です)。
PS:別の回避策は、質問をより適切に整理するために、ここで別の質問としてこれを書いた型キャストです。
ありがとう