CreateTheories.hs revision 1bc5dccbf0083a620ae1181c717fea75e4af5e5c
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder{-# OPTIONS -cpp #-}
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederModule : $Header$
25cc5fbba63f84b47e389af749f55abbbde71c8cChristian MaederDescription : creating Isabelle thoeries via translations
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederCopyright : (c) C. Maeder, Uni Bremen 2005
43b4c41fbb07705c9df321221ab9cb9832460407Christian MaederLicense : similar to LGPL, see HetCATS/LICENSE.txt or LIZENZ.txt
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederMaintainer : Christian.Maeder@dfki.de
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian MaederStability : provisional
43b4c41fbb07705c9df321221ab9cb9832460407Christian MaederPortability : non-portable(Logic)
f4a2a20e49f41b2afa657e5e64d9e349c7faa091Christian Maederdumping a LibEnv to Isabelle theory files
c0c2380bced8159ff0297ece14eba948bd236471Christian Maederimport Comorphisms.PCoClTyConsHOL2IsabelleHOL
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder#ifdef PROGRAMATICA
ad270004874ce1d0697fb30d7309f180553bb315Christian MaedercreateIsaTheory :: G_theory -> Result (Sign, [Named Sentence])
4d56f2fa72e4aec20eb827c11ed49c8cbb7014bdChristian MaedercreateIsaTheory (G_theory lid (ExtSign sign0 _) _ sens0 _) = do
4cb215739e9ab13447fa21162482ebe485b47455Christian Maeder let th = (sign0, toNamedList sens0)
8ef75f1cc0437656bf622cec5ac9e8ea221da8f2Christian Maeder r1 = coerceBasicTheory lid CASL "" th
356fa49fe3e6a8398f92d13e9f920d0f093697ecChristian Maeder th1 <- wrapMapTheory CASL2PCFOL th0
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder th2 <- wrapMapTheory CASL2HasCASL th1
55adfe57a4de1f36adc3e3bfc16f342e44a7d444Christian Maeder wrapMapTheory PCoClTyConsHOL2IsabelleHOL th2
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maeder#ifdef PROGRAMATICA
8d97ef4f234681b11bb5924bd4d03adef858d2d2Christian Maeder r2 = coerceBasicTheory lid Haskell "" th
e593b89bfd4952698dc37feced21cefe869d87a2Christian Maeder wrapMapTheory Haskell2IsabelleHOLCF th0
1aee4aaddde105264c1faf394d88e302c05094ffChristian Maeder r4 = coerceBasicTheory lid HasCASL "" th
7cc09dd93962a2155c34d209d1d4cd7d7b838264Christian Maeder th1 <- wrapMapTheory HasCASL2PCoClTyConsHOL th0
51d769d55d88dfa88bdf54bee78d8fa85a2deba8Christian Maeder wrapMapTheory PCoClTyConsHOL2IsabelleHOL th1
1aee4aaddde105264c1faf394d88e302c05094ffChristian Maeder r5 = coerceBasicTheory lid Isabelle "" th
1aee4aaddde105264c1faf394d88e302c05094ffChristian Maeder r3 = case maybeResult r1 of
c3053d57f642ca507cdf79512e604437c4546cb9Christian Maeder Nothing -> case maybeResult r2 of
dcbd32289a7bdf1e6edd06c6ab0698c6a9dbf37aChristian Maeder Nothing -> case maybeResult r4 of
f4a2a20e49f41b2afa657e5e64d9e349c7faa091Christian Maeder Nothing -> r5
c2fcc35abb03cf0b4ca4b050efeb10827f38c322Christian Maeder (sign, sens) <- r3
1aee4aaddde105264c1faf394d88e302c05094ffChristian Maeder return (sign, prepareSenNames transString $ toNamedList $ toThSens sens)