Open sternk opened 10 years ago
Comment by maeder Migrated from http://trac.informatik.uni-bremen.de:8080/hets/ticket/695#comment:2
There's a new comorphism "MonadicTranslation
" (spechub/Hets@4278792968573e39da24e8eb73f931ba9c15cd50) usable in Hets-lib like:
hets -v2 -t MonadicTranslation -o thy HasCASL/PartialityTest.hets
The file extension should be ".het" (rather than ".hets"). In the ASE paper the profile of the binary function is uncurried. For some reason "More fine grained selection ..." does not work yet in graphical mode.
There are also problems left with Hets-lib/HasCASL/Map.het
The normalising translation should be the default, but still uses MainHCPairs
rather than MainHC
, although this should not matter.
Comment by maeder Migrated from http://trac.informatik.uni-bremen.de:8080/hets/ticket/695#comment:3
"More fine grained selection ..." works now, after has_model_expansion
was set (spechub/Hets@aa074a906c39b63c7177040378c0073dbac4e3ba)
Comment by maeder Migrated from http://trac.informatik.uni-bremen.de:8080/hets/ticket/695#comment:4
The translation of the (commented out) nsMap
properties in Hets-lib/HasCASL/Map.het is problematic, because the types "List b" and "List (? b)" are not distinguished (yet) in HasCASL, leading to incompatible instance annotations (that misguide the translation to Isabelle).
Comment by maeder Migrated from http://trac.informatik.uni-bremen.de:8080/hets/ticket/695#comment:5
This remaining bug is not easily solvable, therefore I must postpone it
Comment by maeder Migrated from http://trac.informatik.uni-bremen.de:8080/hets/ticket/695#comment:6
I'm having a hard time to typecheck: (see Hets-lib/HasCASL/Map.het
)
. map f l = nsMap f l
I suppose List a
(lhs) must be recognized as a subtype of List (? a)
(rhs), but how should I translate this type conversion to Isabelle? (see below)
Alternatively, List a
and List (? a)
could be considered to be identical types and are both translated to 'a partial List
(and the type 'a List
will never occur). This approach is unsatisfying if the simpler 'a List
would suffice.
So, map functions need to be generated for polymorphic data types in Isabelle for the conversions from 'a List
to 'a partial List
(ì.e. by List_map mkPartial)
Reported by lschrode and assigned to maeder Migrated from http://trac.informatik.uni-bremen.de:8080/hets/ticket/695
Implement both the monadic-style and the p-term style translations as laid out in the ASE submission