packages feed

language-sygus 0.1.1.1 → 0.1.1.2

raw patch · 8 files changed

+1434/−1323 lines, 8 filesdep +hashabledep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: hashable

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Sygus.ParseSygus: parseBfTerm :: [Token] -> BfTerm
+ Sygus.ParseSygus: parseCmd :: [Token] -> Cmd
+ Sygus.ParseSygus: parseGroupedRuleLists1 :: [Token] -> [GroupedRuleList]
+ Sygus.ParseSygus: parseIndex :: [Token] -> Index
+ Sygus.ParseSygus: parseMaybeGrammarDef :: [Token] -> Maybe GrammarDef
+ Sygus.ParseSygus: parseSort :: [Token] -> Sort
+ Sygus.ParseSygus: parseSortedVars :: [Token] -> [SortedVar]
+ Sygus.ParseSygus: parseSortedVars1 :: [Token] -> [SortedVar]
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.BfTerm
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.Cmd
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.DTConsDec
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.DTDec
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.Feature
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.GTerm
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.GrammarDef
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.GroupedRuleList
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.Identifier
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.Index
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.Lit
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.SmtCmd
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.Sort
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.SortDecl
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.SortedVar
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.Term
+ Sygus.Syntax: instance Data.Hashable.Class.Hashable Sygus.Syntax.VarBinding
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.BfTerm
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.Cmd
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.DTConsDec
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.DTDec
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.Feature
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.GTerm
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.GrammarDef
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.GroupedRuleList
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.Identifier
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.Index
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.Lit
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.SmtCmd
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.Sort
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.SortDecl
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.SortedVar
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.Term
+ Sygus.Syntax: instance GHC.Generics.Generic Sygus.Syntax.VarBinding
- Sygus.LexSygus: LitDec :: String -> Lit
+ Sygus.LexSygus: LitDec :: Integer -> Integer -> Lit
- Sygus.Syntax: LitDec :: String -> Lit
+ Sygus.Syntax: LitDec :: Integer -> Integer -> Lit

Files

dist/build/Sygus/LexSygus.hs view
@@ -441,8 +441,15 @@ elimOpenCloseQuote' (x:xs) = x:elimOpenCloseQuote' xs elimOpenCloseQuote' [] = error "elimOpenCloseQuote': Bad string" +parseDec :: String -> Lit+parseDec s =+  let+      (n, _:d) = break (== '.') s+  in+  LitDec (read n) (read d) -alex_action_1 =  TLit . LitDec ++alex_action_1 =  TLit. parseDec  alex_action_2 =  TLit . LitNum . read  alex_action_3 =  TLit . const (LitBool True)  alex_action_4 =  TLit . const (LitBool False) 
dist/build/Sygus/ParseSygus.hs view
@@ -4,1302 +4,1340 @@ {-# OPTIONS_GHC -XPartialTypeSignatures #-} #endif module Sygus.ParseSygus ( module Sygus.Syntax -                        , parse ) where--import Sygus.LexSygus-import Sygus.Syntax-import qualified Data.Array as Happy_Data_Array-import qualified Data.Bits as Bits-import qualified GHC.Exts as Happy_GHC_Exts-import Control.Applicative(Applicative(..))-import Control.Monad (ap)---- parser produced by Happy Version 1.19.8--newtype HappyAbsSyn  = HappyAbsSyn HappyAny-#if __GLASGOW_HASKELL__ >= 607-type HappyAny = Happy_GHC_Exts.Any-#else-type HappyAny = forall a . a-#endif-happyIn4 :: ([Cmd]) -> (HappyAbsSyn )-happyIn4 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn4 #-}-happyOut4 :: (HappyAbsSyn ) -> ([Cmd])-happyOut4 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut4 #-}-happyIn5 :: ([Cmd]) -> (HappyAbsSyn )-happyIn5 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn5 #-}-happyOut5 :: (HappyAbsSyn ) -> ([Cmd])-happyOut5 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut5 #-}-happyIn6 :: (Cmd) -> (HappyAbsSyn )-happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn6 #-}-happyOut6 :: (HappyAbsSyn ) -> (Cmd)-happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut6 #-}-happyIn7 :: (Lit) -> (HappyAbsSyn )-happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn7 #-}-happyOut7 :: (HappyAbsSyn ) -> (Lit)-happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut7 #-}-happyIn8 :: (Identifier) -> (HappyAbsSyn )-happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn8 #-}-happyOut8 :: (HappyAbsSyn ) -> (Identifier)-happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut8 #-}-happyIn9 :: ([Index]) -> (HappyAbsSyn )-happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn9 #-}-happyOut9 :: (HappyAbsSyn ) -> ([Index])-happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut9 #-}-happyIn10 :: ([Index]) -> (HappyAbsSyn )-happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn10 #-}-happyOut10 :: (HappyAbsSyn ) -> ([Index])-happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut10 #-}-happyIn11 :: (Index) -> (HappyAbsSyn )-happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn11 #-}-happyOut11 :: (HappyAbsSyn ) -> (Index)-happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut11 #-}-happyIn12 :: ([Sort]) -> (HappyAbsSyn )-happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn12 #-}-happyOut12 :: (HappyAbsSyn ) -> ([Sort])-happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut12 #-}-happyIn13 :: ([Sort]) -> (HappyAbsSyn )-happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn13 #-}-happyOut13 :: (HappyAbsSyn ) -> ([Sort])-happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut13 #-}-happyIn14 :: (Sort) -> (HappyAbsSyn )-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn14 #-}-happyOut14 :: (HappyAbsSyn ) -> (Sort)-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut14 #-}-happyIn15 :: ([Term]) -> (HappyAbsSyn )-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn15 #-}-happyOut15 :: (HappyAbsSyn ) -> ([Term])-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut15 #-}-happyIn16 :: ([Term]) -> (HappyAbsSyn )-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn16 #-}-happyOut16 :: (HappyAbsSyn ) -> ([Term])-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut16 #-}-happyIn17 :: (Term) -> (HappyAbsSyn )-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn17 #-}-happyOut17 :: (HappyAbsSyn ) -> (Term)-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut17 #-}-happyIn18 :: ([BfTerm]) -> (HappyAbsSyn )-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn18 #-}-happyOut18 :: (HappyAbsSyn ) -> ([BfTerm])-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut18 #-}-happyIn19 :: ([BfTerm]) -> (HappyAbsSyn )-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn19 #-}-happyOut19 :: (HappyAbsSyn ) -> ([BfTerm])-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut19 #-}-happyIn20 :: (BfTerm) -> (HappyAbsSyn )-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn20 #-}-happyOut20 :: (HappyAbsSyn ) -> (BfTerm)-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut20 #-}-happyIn21 :: ([SortedVar]) -> (HappyAbsSyn )-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn21 #-}-happyOut21 :: (HappyAbsSyn ) -> ([SortedVar])-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut21 #-}-happyIn22 :: ([SortedVar]) -> (HappyAbsSyn )-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn22 #-}-happyOut22 :: (HappyAbsSyn ) -> ([SortedVar])-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut22 #-}-happyIn23 :: ([SortedVar]) -> (HappyAbsSyn )-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn23 #-}-happyOut23 :: (HappyAbsSyn ) -> ([SortedVar])-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut23 #-}-happyIn24 :: ([SortedVar]) -> (HappyAbsSyn )-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn24 #-}-happyOut24 :: (HappyAbsSyn ) -> ([SortedVar])-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut24 #-}-happyIn25 :: (SortedVar) -> (HappyAbsSyn )-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn25 #-}-happyOut25 :: (HappyAbsSyn ) -> (SortedVar)-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut25 #-}-happyIn26 :: ([VarBinding]) -> (HappyAbsSyn )-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn26 #-}-happyOut26 :: (HappyAbsSyn ) -> ([VarBinding])-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut26 #-}-happyIn27 :: ([VarBinding]) -> (HappyAbsSyn )-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn27 #-}-happyOut27 :: (HappyAbsSyn ) -> ([VarBinding])-happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut27 #-}-happyIn28 :: (VarBinding) -> (HappyAbsSyn )-happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn28 #-}-happyOut28 :: (HappyAbsSyn ) -> (VarBinding)-happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut28 #-}-happyIn29 :: (Feature) -> (HappyAbsSyn )-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn29 #-}-happyOut29 :: (HappyAbsSyn ) -> (Feature)-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut29 #-}-happyIn30 :: (SmtCmd) -> (HappyAbsSyn )-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn30 #-}-happyOut30 :: (HappyAbsSyn ) -> (SmtCmd)-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut30 #-}-happyIn31 :: ([SortDecl]) -> (HappyAbsSyn )-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn31 #-}-happyOut31 :: (HappyAbsSyn ) -> ([SortDecl])-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut31 #-}-happyIn32 :: ([SortDecl]) -> (HappyAbsSyn )-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn32 #-}-happyOut32 :: (HappyAbsSyn ) -> ([SortDecl])-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut32 #-}-happyIn33 :: (SortDecl) -> (HappyAbsSyn )-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn33 #-}-happyOut33 :: (HappyAbsSyn ) -> (SortDecl)-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut33 #-}-happyIn34 :: ([DTDec]) -> (HappyAbsSyn )-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn34 #-}-happyOut34 :: (HappyAbsSyn ) -> ([DTDec])-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut34 #-}-happyIn35 :: ([DTDec]) -> (HappyAbsSyn )-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn35 #-}-happyOut35 :: (HappyAbsSyn ) -> ([DTDec])-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut35 #-}-happyIn36 :: (DTDec) -> (HappyAbsSyn )-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn36 #-}-happyOut36 :: (HappyAbsSyn ) -> (DTDec)-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut36 #-}-happyIn37 :: ([DTConsDec]) -> (HappyAbsSyn )-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn37 #-}-happyOut37 :: (HappyAbsSyn ) -> ([DTConsDec])-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut37 #-}-happyIn38 :: ([DTConsDec]) -> (HappyAbsSyn )-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn38 #-}-happyOut38 :: (HappyAbsSyn ) -> ([DTConsDec])-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut38 #-}-happyIn39 :: (DTConsDec) -> (HappyAbsSyn )-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn39 #-}-happyOut39 :: (HappyAbsSyn ) -> (DTConsDec)-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut39 #-}-happyIn40 :: (Maybe GrammarDef) -> (HappyAbsSyn )-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn40 #-}-happyOut40 :: (HappyAbsSyn ) -> (Maybe GrammarDef)-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut40 #-}-happyIn41 :: (GrammarDef) -> (HappyAbsSyn )-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn41 #-}-happyOut41 :: (HappyAbsSyn ) -> (GrammarDef)-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut41 #-}-happyIn42 :: ([GroupedRuleList]) -> (HappyAbsSyn )-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn42 #-}-happyOut42 :: (HappyAbsSyn ) -> ([GroupedRuleList])-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut42 #-}-happyIn43 :: ([GroupedRuleList]) -> (HappyAbsSyn )-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn43 #-}-happyOut43 :: (HappyAbsSyn ) -> ([GroupedRuleList])-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut43 #-}-happyIn44 :: (GroupedRuleList) -> (HappyAbsSyn )-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn44 #-}-happyOut44 :: (HappyAbsSyn ) -> (GroupedRuleList)-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut44 #-}-happyIn45 :: ([GTerm]) -> (HappyAbsSyn )-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn45 #-}-happyOut45 :: (HappyAbsSyn ) -> ([GTerm])-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut45 #-}-happyIn46 :: ([GTerm]) -> (HappyAbsSyn )-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn46 #-}-happyOut46 :: (HappyAbsSyn ) -> ([GTerm])-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut46 #-}-happyIn47 :: (GTerm) -> (HappyAbsSyn )-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn47 #-}-happyOut47 :: (HappyAbsSyn ) -> (GTerm)-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut47 #-}-happyInTok :: (Token) -> (HappyAbsSyn )-happyInTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyInTok #-}-happyOutTok :: (HappyAbsSyn ) -> (Token)-happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOutTok #-}---happyExpList :: HappyAddr-happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x3f\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0b\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x40\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x07\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x20\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x04\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0b\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x2e\x00\x00\x40\x00\x00\x00\x00\x00\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x20\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0b\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x01\x00\x00\x00\x00\x00\x20\x00\x00\x40\x00\x00\x00\x00\x00\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0b\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--{-# NOINLINE happyExpListPerState #-}-happyExpListPerState st =-    token_strs_expected-  where token_strs = ["error","%dummy","%start_parse","sygus","sygus_rev","cmd","lit","identifier","indexes1","indexes_rev1","index","sorts1","sorts_rev1","sort","terms1","terms_rev1","term","bfterms1","bfterms_rev1","bfterm","sorted_vars1","sorted_vars_rev1","sorted_vars","sorted_vars_rev","sorted_var","var_bindings1","var_bindings_rev1","var_binding","feature","smtCmd","sort_decls1","sort_decls_rev1","sort_decl","dt_decs1","dt_decs_rev1","dt_dec","dt_cons_decs1","dt_cons_decs_rev1","dt_cons_dec","maybe_grammar_def","grammar_def","grouped_rule_lists1","grouped_rule_lists_rev1","grouped_rule_list","gterm1","gterm_rev1","gterm","num","bool","other_lit","'_'","'('","')'","':'","exists","forall","tlet","grammars","fwdDecls","recursion","checkSynth","constraint","declareVar","invConstraint","setFeature","synthFun","synthInv","declareDatatype","declareDatatypes","declareSort","defineFun","defineSort","setLogic","setOption","constant","variable","symb","%eof"]-        bit_start = st * 78-        bit_end = (st + 1) * 78-        read_bit = readArrayBit happyExpList-        bits = map read_bit [bit_start..bit_end - 1]-        bits_indexed = zip bits [0..77]-        token_strs_expected = concatMap f bits_indexed-        f (False, _) = []-        f (True, nr) = [token_strs !! nr]--happyActOffsets :: HappyAddr-happyActOffsets = HappyA# "\x00\x00\x00\x00\x04\x00\xf6\xff\x00\x00\x00\x00\x28\x00\x14\x00\x11\x00\x0d\x00\x2b\x00\x18\x00\x37\x00\x46\x00\x48\x00\x5d\x00\x68\x00\x88\x00\x92\x00\x95\x00\x3f\x00\x97\x00\x8b\x00\x08\x00\xaa\x00\x9a\x00\xac\x00\xad\x00\xaf\x00\xb1\x00\x7d\x00\x99\x00\x08\x00\x00\x00\x00\x00\xb2\x00\x00\x00\x00\x00\x00\x00\x29\x00\x00\x00\x00\x00\x11\x00\x9b\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\x00\x00\x00\x00\xb5\x00\x07\x00\xa1\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xbd\x00\xbf\x00\xc1\x00\x00\x00\xa5\x00\xc2\x00\x00\x00\xc3\x00\x00\x00\x8a\x00\xc4\x00\x00\x00\xc5\x00\xc7\x00\x00\x00\xc6\x00\x00\x00\xc8\x00\xc9\x00\xcb\x00\x00\x00\xa6\x00\x00\x00\xcc\x00\xcd\x00\xce\x00\xb0\x00\x08\x00\x00\x00\xd0\x00\xd1\x00\xd1\x00\x02\x00\xd2\x00\x11\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x02\x00\x00\x00\x00\x00\x00\x00\xd4\x00\xd6\x00\x00\x00\xb3\x00\xd7\x00\xd8\x00\xda\x00\x00\x00\xca\x00\xdb\x00\x08\x00\x00\x00\xdc\x00\x00\x00\x08\x00\xde\x00\x00\x00\x00\x00\x00\x00\xdf\x00\xe0\x00\x00\x00\x08\x00\x00\x00\x11\x00\x00\x00\xe1\x00\xe4\x00\x00\x00\xe5\x00\xe6\x00\x00\x00\xe8\x00\xe9\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x11\x00\x11\x00\x08\x00\x00\x00\x11\x00\x00\x00\x00\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\x00\x00\x00\x00\x00\x00\xf1\x00\xf2\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x00\xf6\x00\xf8\x00\x00\x00\xdd\x00\x08\x00\x00\x00\x00\x00\xf9\x00\x05\x00\x00\x00\x00\x00\x00\x00\xfa\x00\x05\x00\x00\x00\x07\x00\x08\x00\x08\x00\x00\x00\x00\x00\x16\x00\x00\x00\xfb\x00\x00\x00\xfc\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--happyGotoOffsets :: HappyAddr-happyGotoOffsets = HappyA# "\xa2\x00\xfe\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x73\x00\xbc\x00\x00\x00\x00\x00\xf3\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x00\x94\x00\x00\x00\x71\x00\x00\x00\xba\x00\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x7f\x00\x6a\x00\x70\x00\x93\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x6b\x00\x59\x00\x98\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x56\x00\x00\x00\x00\x00\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x00\x89\x00\x00\x00\x00\x00\x00\x00\x58\x00\x00\x00\x5a\x00\x5c\x00\x6d\x00\x00\x00\x67\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x00\x00\x01\x01\x00\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x00\x00\xfe\xff\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x03\x01\x6f\x00\x76\x00\x00\x00\x00\x00\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int#-happyAdjustOffset off = off--happyDefActions :: HappyAddr-happyDefActions = HappyA# "\xfc\xff\x00\x00\xfe\xff\x00\x00\xfd\xff\xf4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\xe1\xff\x00\x00\xf3\xff\xf2\xff\xf1\xff\x00\x00\xf0\xff\xfb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xe6\xff\x00\x00\x00\x00\x00\x00\x00\x00\xca\xff\xc9\xff\xc8\xff\xd0\xff\xd0\xff\x00\x00\x00\x00\x00\x00\xc0\xff\xbe\xff\x00\x00\x00\x00\xd0\xff\x00\x00\xc2\xff\x00\x00\x00\x00\xc3\xff\x00\x00\xd2\xff\xc5\xff\x00\x00\xbf\xff\x00\x00\x00\x00\xb8\xff\xb6\xff\x00\x00\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\xff\xe2\xff\xe3\xff\xdf\xff\x00\x00\xee\xff\xec\xff\xeb\xff\xea\xff\x00\x00\xd5\xff\xd3\xff\x00\x00\x00\x00\x00\x00\xce\xff\xcc\xff\x00\x00\x00\x00\xe9\xff\xe7\xff\x00\x00\xf7\xff\x00\x00\xb3\xff\xd0\xff\xb7\xff\xb9\xff\x00\x00\x00\x00\xd1\xff\x00\x00\xc1\xff\x00\x00\xbd\xff\x00\x00\xbc\xff\xba\xff\x00\x00\x00\x00\xb4\xff\x00\x00\xb3\xff\xf8\xff\xe8\xff\xe5\xff\x00\x00\xcd\xff\x00\x00\x00\x00\x00\x00\xd4\xff\x00\x00\xed\xff\xef\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\xff\xb5\xff\xbb\xff\x00\x00\x00\x00\xc4\xff\xc6\xff\x00\x00\xf6\xff\xcb\xff\xdc\xff\xdd\xff\xcf\xff\xde\xff\x00\x00\x00\x00\xb1\xff\xaf\xff\x00\x00\x00\x00\xb0\xff\xb2\xff\x00\x00\x00\x00\xd7\xff\xd8\xff\xa8\xff\x00\x00\xad\xff\xab\xff\x00\x00\x00\x00\x00\x00\xa9\xff\xaa\xff\x00\x00\xac\xff\x00\x00\xae\xff\x00\x00\xdb\xff\xd9\xff\xda\xff\xd6\xff"#--happyCheck :: HappyAddr-happyCheck = HappyA# "\xff\xff\x03\x00\x04\x00\x01\x00\x03\x00\x04\x00\x01\x00\x02\x00\x03\x00\x05\x00\x05\x00\x04\x00\x05\x00\x05\x00\x10\x00\x03\x00\x04\x00\x10\x00\x01\x00\x02\x00\x03\x00\x1f\x00\x05\x00\x01\x00\x02\x00\x03\x00\x06\x00\x05\x00\x10\x00\x02\x00\x04\x00\x07\x00\x1e\x00\x1c\x00\x1d\x00\x1e\x00\x0a\x00\x1e\x00\x1e\x00\x29\x00\x2a\x00\x2b\x00\x04\x00\x1e\x00\x2b\x00\x04\x00\x05\x00\x1e\x00\x0a\x00\x08\x00\x09\x00\x0a\x00\x1e\x00\x1a\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x03\x00\x04\x00\x07\x00\x1e\x00\x04\x00\x1e\x00\x03\x00\x04\x00\x03\x00\x04\x00\x0a\x00\x0e\x00\x0f\x00\x10\x00\x0b\x00\x0c\x00\x0d\x00\x1e\x00\x0d\x00\x03\x00\x04\x00\x03\x00\x04\x00\x03\x00\x04\x00\x03\x00\x04\x00\x03\x00\x04\x00\x0d\x00\x05\x00\x0d\x00\x1e\x00\x0d\x00\x1e\x00\x0d\x00\x04\x00\x0d\x00\x03\x00\x04\x00\x08\x00\x09\x00\x0a\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x0d\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x04\x00\x11\x00\x12\x00\x24\x00\x25\x00\x15\x00\x0a\x00\x11\x00\x12\x00\x11\x00\x12\x00\x15\x00\x1e\x00\x15\x00\x0b\x00\x0c\x00\x0d\x00\x01\x00\x02\x00\x03\x00\x1b\x00\x1c\x00\x1d\x00\x06\x00\x21\x00\x22\x00\x23\x00\x16\x00\x17\x00\x18\x00\x05\x00\x06\x00\x07\x00\x01\x00\x1e\x00\x1f\x00\x20\x00\x26\x00\x27\x00\x28\x00\x00\x00\x01\x00\x13\x00\x14\x00\x1e\x00\x13\x00\x14\x00\x13\x00\x14\x00\x13\x00\x14\x00\x24\x00\x25\x00\x05\x00\x1e\x00\x05\x00\x05\x00\x1e\x00\x05\x00\x1e\x00\x05\x00\x1e\x00\x06\x00\x1e\x00\x04\x00\x06\x00\x05\x00\x05\x00\x05\x00\x1e\x00\x02\x00\x06\x00\x05\x00\x1e\x00\x1e\x00\x06\x00\x05\x00\x01\x00\x06\x00\x06\x00\x06\x00\x06\x00\x05\x00\x05\x00\x1e\x00\x06\x00\x05\x00\x1e\x00\x06\x00\x06\x00\x06\x00\x05\x00\x05\x00\x1d\x00\x06\x00\x06\x00\x06\x00\x05\x00\x20\x00\x06\x00\x06\x00\x05\x00\x07\x00\x06\x00\x06\x00\x05\x00\x05\x00\x03\x00\x06\x00\x06\x00\x1e\x00\x05\x00\x15\x00\x06\x00\x06\x00\x05\x00\x05\x00\x20\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x05\x00\x05\x00\x1e\x00\x06\x00\x05\x00\x05\x00\x01\x00\x06\x00\x06\x00\x06\x00\x04\x00\x04\x00\xff\xff\x23\x00\x04\x00\xff\xff\xff\xff\xff\xff\xff\xff\x19\x00\xff\xff\xff\xff\x18\x00\xff\xff\xff\xff\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#--happyTable :: HappyAddr-happyTable = HappyA# "\x00\x00\xb4\x00\xb5\x00\x66\x00\xb4\x00\xb5\x00\x25\x00\x26\x00\x27\x00\x07\x00\xbb\x00\x2c\x00\x2d\x00\x34\x00\xb6\x00\xb4\x00\xb5\x00\xb6\x00\x25\x00\x26\x00\x27\x00\xff\xff\x28\x00\x25\x00\x26\x00\x27\x00\x2a\x00\xbb\x00\xc6\x00\x04\x00\x31\x00\x1f\x00\x67\x00\xbc\x00\xbd\x00\x29\x00\x43\x00\x29\x00\x29\x00\xb7\x00\xb8\x00\xb9\x00\x31\x00\x21\x00\xc0\x00\x2c\x00\x2d\x00\x29\x00\x32\x00\x2e\x00\x2f\x00\x30\x00\x29\x00\x05\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xb4\x00\xb5\x00\x16\x00\x29\x00\x31\x00\x20\x00\x21\x00\x22\x00\x21\x00\x22\x00\x8a\x00\xc3\x00\xc4\x00\xc5\x00\x5d\x00\x5e\x00\x5f\x00\x1e\x00\x23\x00\x21\x00\x22\x00\x21\x00\x22\x00\x21\x00\x22\x00\x21\x00\x22\x00\x21\x00\x22\x00\x60\x00\x1b\x00\xa0\x00\x1d\x00\x99\x00\x1c\x00\x98\x00\x31\x00\x97\x00\x21\x00\x22\x00\x70\x00\x71\x00\x72\x00\x31\x00\x31\x00\x31\x00\x31\x00\x31\x00\x95\x00\x88\x00\x7f\x00\x96\x00\xb2\x00\xbe\x00\x31\x00\x6b\x00\x68\x00\x85\x00\x86\x00\x69\x00\xbd\x00\x67\x00\x68\x00\x9b\x00\x68\x00\x69\x00\x1a\x00\x69\x00\x37\x00\x38\x00\x39\x00\x25\x00\x26\x00\x27\x00\x3d\x00\x3e\x00\x3f\x00\x45\x00\x4e\x00\x4f\x00\x50\x00\x6c\x00\x6d\x00\x6e\x00\x62\x00\x63\x00\x64\x00\x42\x00\x81\x00\x82\x00\x83\x00\xab\x00\xac\x00\xad\x00\x03\x00\x02\x00\x54\x00\x49\x00\x19\x00\x53\x00\x49\x00\x48\x00\x49\x00\x84\x00\x49\x00\x9a\x00\x86\x00\x43\x00\x18\x00\x41\x00\x3d\x00\x17\x00\x3b\x00\x46\x00\x3a\x00\x35\x00\x31\x00\x5d\x00\x2c\x00\x59\x00\x5c\x00\x5b\x00\x5a\x00\x57\x00\x56\x00\x53\x00\x52\x00\x4c\x00\x78\x00\x4e\x00\x41\x00\x7c\x00\x4b\x00\x48\x00\x7f\x00\x7e\x00\x6b\x00\x7b\x00\x74\x00\x7a\x00\x52\x00\x91\x00\x77\x00\x76\x00\x75\x00\x70\x00\x6b\x00\x4c\x00\x62\x00\x95\x00\x93\x00\x6b\x00\x3b\x00\x90\x00\x8f\x00\x70\x00\x93\x00\x8c\x00\x8a\x00\x88\x00\x3d\x00\x46\x00\x81\x00\xa0\x00\x8d\x00\x3d\x00\x7c\x00\x9e\x00\x9d\x00\x6b\x00\x88\x00\x9e\x00\xaa\x00\xa9\x00\xa8\x00\xa7\x00\xa6\x00\xa5\x00\xa4\x00\xa3\x00\xa2\x00\xab\x00\xaf\x00\xb0\x00\xb2\x00\xaf\x00\xb4\x00\x02\x00\xc2\x00\xc3\x00\xc8\x00\x2a\x00\x57\x00\x00\x00\x78\x00\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--happyReduceArr = Happy_Data_Array.array (1, 87) [-	(1 , happyReduce_1),-	(2 , happyReduce_2),-	(3 , happyReduce_3),-	(4 , happyReduce_4),-	(5 , happyReduce_5),-	(6 , happyReduce_6),-	(7 , happyReduce_7),-	(8 , happyReduce_8),-	(9 , happyReduce_9),-	(10 , happyReduce_10),-	(11 , happyReduce_11),-	(12 , happyReduce_12),-	(13 , happyReduce_13),-	(14 , happyReduce_14),-	(15 , happyReduce_15),-	(16 , happyReduce_16),-	(17 , happyReduce_17),-	(18 , happyReduce_18),-	(19 , happyReduce_19),-	(20 , happyReduce_20),-	(21 , happyReduce_21),-	(22 , happyReduce_22),-	(23 , happyReduce_23),-	(24 , happyReduce_24),-	(25 , happyReduce_25),-	(26 , happyReduce_26),-	(27 , happyReduce_27),-	(28 , happyReduce_28),-	(29 , happyReduce_29),-	(30 , happyReduce_30),-	(31 , happyReduce_31),-	(32 , happyReduce_32),-	(33 , happyReduce_33),-	(34 , happyReduce_34),-	(35 , happyReduce_35),-	(36 , happyReduce_36),-	(37 , happyReduce_37),-	(38 , happyReduce_38),-	(39 , happyReduce_39),-	(40 , happyReduce_40),-	(41 , happyReduce_41),-	(42 , happyReduce_42),-	(43 , happyReduce_43),-	(44 , happyReduce_44),-	(45 , happyReduce_45),-	(46 , happyReduce_46),-	(47 , happyReduce_47),-	(48 , happyReduce_48),-	(49 , happyReduce_49),-	(50 , happyReduce_50),-	(51 , happyReduce_51),-	(52 , happyReduce_52),-	(53 , happyReduce_53),-	(54 , happyReduce_54),-	(55 , happyReduce_55),-	(56 , happyReduce_56),-	(57 , happyReduce_57),-	(58 , happyReduce_58),-	(59 , happyReduce_59),-	(60 , happyReduce_60),-	(61 , happyReduce_61),-	(62 , happyReduce_62),-	(63 , happyReduce_63),-	(64 , happyReduce_64),-	(65 , happyReduce_65),-	(66 , happyReduce_66),-	(67 , happyReduce_67),-	(68 , happyReduce_68),-	(69 , happyReduce_69),-	(70 , happyReduce_70),-	(71 , happyReduce_71),-	(72 , happyReduce_72),-	(73 , happyReduce_73),-	(74 , happyReduce_74),-	(75 , happyReduce_75),-	(76 , happyReduce_76),-	(77 , happyReduce_77),-	(78 , happyReduce_78),-	(79 , happyReduce_79),-	(80 , happyReduce_80),-	(81 , happyReduce_81),-	(82 , happyReduce_82),-	(83 , happyReduce_83),-	(84 , happyReduce_84),-	(85 , happyReduce_85),-	(86 , happyReduce_86),-	(87 , happyReduce_87)-	]--happy_n_terms = 32 :: Int-happy_n_nonterms = 44 :: Int--happyReduce_1 = happySpecReduce_1  0# happyReduction_1-happyReduction_1 happy_x_1-	 =  case happyOut5 happy_x_1 of { happy_var_1 -> -	happyIn4-		 (reverse happy_var_1-	)}--happyReduce_2 = happySpecReduce_2  1# happyReduction_2-happyReduction_2 happy_x_2-	happy_x_1-	 =  case happyOut5 happy_x_1 of { happy_var_1 -> -	case happyOut6 happy_x_2 of { happy_var_2 -> -	happyIn5-		 (happy_var_2:happy_var_1-	)}}--happyReduce_3 = happySpecReduce_0  1# happyReduction_3-happyReduction_3  =  happyIn5-		 ([]-	)--happyReduce_4 = happySpecReduce_3  2# happyReduction_4-happyReduction_4 happy_x_3-	happy_x_2-	happy_x_1-	 =  happyIn6-		 (CheckSynth-	)--happyReduce_5 = happyReduce 4# 2# happyReduction_5-happyReduction_5 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut17 happy_x_3 of { happy_var_3 -> -	happyIn6-		 (Constraint happy_var_3-	) `HappyStk` happyRest}--happyReduce_6 = happyReduce 5# 2# happyReduction_6-happyReduction_6 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> -	case happyOut14 happy_x_4 of { happy_var_4 -> -	happyIn6-		 (DeclareVar happy_var_3 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_7 = happyReduce 7# 2# happyReduction_7-happyReduction_7 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> -	case happyOutTok happy_x_4 of { (TSymbol happy_var_4) -> -	case happyOutTok happy_x_5 of { (TSymbol happy_var_5) -> -	case happyOutTok happy_x_6 of { (TSymbol happy_var_6) -> -	happyIn6-		 (InvConstraint happy_var_3 happy_var_4 happy_var_5 happy_var_6-	) `HappyStk` happyRest}}}}--happyReduce_8 = happyReduce 6# 2# happyReduction_8-happyReduction_8 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut29 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (TLit (LitBool happy_var_5)) -> -	happyIn6-		 (SetFeature happy_var_4 happy_var_5-	) `HappyStk` happyRest}}--happyReduce_9 = happyReduce 9# 2# happyReduction_9-happyReduction_9 (happy_x_9 `HappyStk`-	happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> -	case happyOut23 happy_x_5 of { happy_var_5 -> -	case happyOut14 happy_x_7 of { happy_var_7 -> -	case happyOut40 happy_x_8 of { happy_var_8 -> -	happyIn6-		 (SynthFun happy_var_3 happy_var_5 happy_var_7 happy_var_8-	) `HappyStk` happyRest}}}}--happyReduce_10 = happyReduce 8# 2# happyReduction_10-happyReduction_10 (happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> -	case happyOut23 happy_x_5 of { happy_var_5 -> -	case happyOut40 happy_x_7 of { happy_var_7 -> -	happyIn6-		 (SynthInv happy_var_3 happy_var_5 happy_var_7-	) `HappyStk` happyRest}}}--happyReduce_11 = happySpecReduce_1  2# happyReduction_11-happyReduction_11 happy_x_1-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> -	happyIn6-		 (SmtCmd happy_var_1-	)}--happyReduce_12 = happySpecReduce_1  3# happyReduction_12-happyReduction_12 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TLit (LitNum happy_var_1)) -> -	happyIn7-		 (LitNum happy_var_1-	)}--happyReduce_13 = happySpecReduce_1  3# happyReduction_13-happyReduction_13 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TLit (LitBool happy_var_1)) -> -	happyIn7-		 (LitBool happy_var_1-	)}--happyReduce_14 = happySpecReduce_1  3# happyReduction_14-happyReduction_14 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TLit happy_var_1) -> -	happyIn7-		 (happy_var_1-	)}--happyReduce_15 = happySpecReduce_1  4# happyReduction_15-happyReduction_15 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TSymbol happy_var_1) -> -	happyIn8-		 (ISymb happy_var_1-	)}--happyReduce_16 = happyReduce 5# 4# happyReduction_16-happyReduction_16 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> -	case happyOut9 happy_x_4 of { happy_var_4 -> -	happyIn8-		 (Indexed happy_var_3 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_17 = happySpecReduce_1  5# happyReduction_17-happyReduction_17 happy_x_1-	 =  case happyOut10 happy_x_1 of { happy_var_1 -> -	happyIn9-		 (reverse happy_var_1-	)}--happyReduce_18 = happySpecReduce_2  6# happyReduction_18-happyReduction_18 happy_x_2-	happy_x_1-	 =  case happyOut10 happy_x_1 of { happy_var_1 -> -	case happyOut11 happy_x_2 of { happy_var_2 -> -	happyIn10-		 (happy_var_2:happy_var_1-	)}}--happyReduce_19 = happySpecReduce_1  6# happyReduction_19-happyReduction_19 happy_x_1-	 =  case happyOut11 happy_x_1 of { happy_var_1 -> -	happyIn10-		 ([happy_var_1]-	)}--happyReduce_20 = happySpecReduce_1  7# happyReduction_20-happyReduction_20 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TLit (LitNum happy_var_1)) -> -	happyIn11-		 (IndNumeral happy_var_1-	)}--happyReduce_21 = happySpecReduce_1  7# happyReduction_21-happyReduction_21 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TSymbol happy_var_1) -> -	happyIn11-		 (IndSymb happy_var_1-	)}--happyReduce_22 = happySpecReduce_1  8# happyReduction_22-happyReduction_22 happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	happyIn12-		 (reverse happy_var_1-	)}--happyReduce_23 = happySpecReduce_2  9# happyReduction_23-happyReduction_23 happy_x_2-	happy_x_1-	 =  case happyOut13 happy_x_1 of { happy_var_1 -> -	case happyOut14 happy_x_2 of { happy_var_2 -> -	happyIn13-		 (happy_var_2:happy_var_1-	)}}--happyReduce_24 = happySpecReduce_1  9# happyReduction_24-happyReduction_24 happy_x_1-	 =  case happyOut14 happy_x_1 of { happy_var_1 -> -	happyIn13-		 ([happy_var_1]-	)}--happyReduce_25 = happySpecReduce_1  10# happyReduction_25-happyReduction_25 happy_x_1-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> -	happyIn14-		 (IdentSort happy_var_1-	)}--happyReduce_26 = happyReduce 4# 10# happyReduction_26-happyReduction_26 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut8 happy_x_2 of { happy_var_2 -> -	case happyOut12 happy_x_3 of { happy_var_3 -> -	happyIn14-		 (IdentSortSort happy_var_2 happy_var_3-	) `HappyStk` happyRest}}--happyReduce_27 = happySpecReduce_1  11# happyReduction_27-happyReduction_27 happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	happyIn15-		 (reverse happy_var_1-	)}--happyReduce_28 = happySpecReduce_2  12# happyReduction_28-happyReduction_28 happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	case happyOut17 happy_x_2 of { happy_var_2 -> -	happyIn16-		 (happy_var_2:happy_var_1-	)}}--happyReduce_29 = happySpecReduce_1  12# happyReduction_29-happyReduction_29 happy_x_1-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> -	happyIn16-		 ([happy_var_1]-	)}--happyReduce_30 = happySpecReduce_1  13# happyReduction_30-happyReduction_30 happy_x_1-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> -	happyIn17-		 (TermIdent happy_var_1-	)}--happyReduce_31 = happySpecReduce_1  13# happyReduction_31-happyReduction_31 happy_x_1-	 =  case happyOut7 happy_x_1 of { happy_var_1 -> -	happyIn17-		 (TermLit happy_var_1-	)}--happyReduce_32 = happyReduce 4# 13# happyReduction_32-happyReduction_32 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut8 happy_x_2 of { happy_var_2 -> -	case happyOut15 happy_x_3 of { happy_var_3 -> -	happyIn17-		 (TermCall happy_var_2 happy_var_3-	) `HappyStk` happyRest}}--happyReduce_33 = happyReduce 7# 13# happyReduction_33-happyReduction_33 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut21 happy_x_4 of { happy_var_4 -> -	case happyOut17 happy_x_6 of { happy_var_6 -> -	happyIn17-		 (TermExists happy_var_4 happy_var_6-	) `HappyStk` happyRest}}--happyReduce_34 = happyReduce 7# 13# happyReduction_34-happyReduction_34 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut21 happy_x_4 of { happy_var_4 -> -	case happyOut17 happy_x_6 of { happy_var_6 -> -	happyIn17-		 (TermForAll happy_var_4 happy_var_6-	) `HappyStk` happyRest}}--happyReduce_35 = happyReduce 7# 13# happyReduction_35-happyReduction_35 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut26 happy_x_4 of { happy_var_4 -> -	case happyOut17 happy_x_6 of { happy_var_6 -> -	happyIn17-		 (TermLet happy_var_4 happy_var_6-	) `HappyStk` happyRest}}--happyReduce_36 = happySpecReduce_1  14# happyReduction_36-happyReduction_36 happy_x_1-	 =  case happyOut19 happy_x_1 of { happy_var_1 -> -	happyIn18-		 (reverse happy_var_1-	)}--happyReduce_37 = happySpecReduce_2  15# happyReduction_37-happyReduction_37 happy_x_2-	happy_x_1-	 =  case happyOut19 happy_x_1 of { happy_var_1 -> -	case happyOut20 happy_x_2 of { happy_var_2 -> -	happyIn19-		 (happy_var_2:happy_var_1-	)}}--happyReduce_38 = happySpecReduce_1  15# happyReduction_38-happyReduction_38 happy_x_1-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> -	happyIn19-		 ([happy_var_1]-	)}--happyReduce_39 = happySpecReduce_1  16# happyReduction_39-happyReduction_39 happy_x_1-	 =  case happyOut8 happy_x_1 of { happy_var_1 -> -	happyIn20-		 (BfIdentifier happy_var_1-	)}--happyReduce_40 = happySpecReduce_1  16# happyReduction_40-happyReduction_40 happy_x_1-	 =  case happyOut7 happy_x_1 of { happy_var_1 -> -	happyIn20-		 (BfLiteral happy_var_1-	)}--happyReduce_41 = happyReduce 4# 16# happyReduction_41-happyReduction_41 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut8 happy_x_2 of { happy_var_2 -> -	case happyOut18 happy_x_3 of { happy_var_3 -> -	happyIn20-		 (BfIdentifierBfs happy_var_2 happy_var_3-	) `HappyStk` happyRest}}--happyReduce_42 = happySpecReduce_1  17# happyReduction_42-happyReduction_42 happy_x_1-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> -	happyIn21-		 (reverse happy_var_1-	)}--happyReduce_43 = happySpecReduce_2  18# happyReduction_43-happyReduction_43 happy_x_2-	happy_x_1-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> -	case happyOut25 happy_x_2 of { happy_var_2 -> -	happyIn22-		 (happy_var_2:happy_var_1-	)}}--happyReduce_44 = happySpecReduce_1  18# happyReduction_44-happyReduction_44 happy_x_1-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> -	happyIn22-		 ([happy_var_1]-	)}--happyReduce_45 = happySpecReduce_1  19# happyReduction_45-happyReduction_45 happy_x_1-	 =  case happyOut24 happy_x_1 of { happy_var_1 -> -	happyIn23-		 (reverse happy_var_1-	)}--happyReduce_46 = happySpecReduce_2  20# happyReduction_46-happyReduction_46 happy_x_2-	happy_x_1-	 =  case happyOut24 happy_x_1 of { happy_var_1 -> -	case happyOut25 happy_x_2 of { happy_var_2 -> -	happyIn24-		 (happy_var_2:happy_var_1-	)}}--happyReduce_47 = happySpecReduce_0  20# happyReduction_47-happyReduction_47  =  happyIn24-		 ([]-	)--happyReduce_48 = happyReduce 4# 21# happyReduction_48-happyReduction_48 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_2 of { (TSymbol happy_var_2) -> -	case happyOut14 happy_x_3 of { happy_var_3 -> -	happyIn25-		 (SortedVar happy_var_2 happy_var_3-	) `HappyStk` happyRest}}--happyReduce_49 = happySpecReduce_1  22# happyReduction_49-happyReduction_49 happy_x_1-	 =  case happyOut27 happy_x_1 of { happy_var_1 -> -	happyIn26-		 (reverse happy_var_1-	)}--happyReduce_50 = happySpecReduce_2  23# happyReduction_50-happyReduction_50 happy_x_2-	happy_x_1-	 =  case happyOut27 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { happy_var_2 -> -	happyIn27-		 (happy_var_2:happy_var_1-	)}}--happyReduce_51 = happySpecReduce_1  23# happyReduction_51-happyReduction_51 happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	happyIn27-		 ([happy_var_1]-	)}--happyReduce_52 = happyReduce 4# 24# happyReduction_52-happyReduction_52 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_2 of { (TSymbol happy_var_2) -> -	case happyOut17 happy_x_3 of { happy_var_3 -> -	happyIn28-		 (VarBinding happy_var_2 happy_var_3-	) `HappyStk` happyRest}}--happyReduce_53 = happySpecReduce_1  25# happyReduction_53-happyReduction_53 happy_x_1-	 =  happyIn29-		 (Grammars-	)--happyReduce_54 = happySpecReduce_1  25# happyReduction_54-happyReduction_54 happy_x_1-	 =  happyIn29-		 (FwdDecls-	)--happyReduce_55 = happySpecReduce_1  25# happyReduction_55-happyReduction_55 happy_x_1-	 =  happyIn29-		 (Recursion-	)--happyReduce_56 = happyReduce 5# 26# happyReduction_56-happyReduction_56 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> -	case happyOut36 happy_x_4 of { happy_var_4 -> -	happyIn30-		 (DeclareDatatype happy_var_3 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_57 = happyReduce 9# 26# happyReduction_57-happyReduction_57 (happy_x_9 `HappyStk`-	happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut31 happy_x_4 of { happy_var_4 -> -	case happyOut34 happy_x_7 of { happy_var_7 -> -	happyIn30-		 (DeclareDatatypes happy_var_4 happy_var_7-	) `HappyStk` happyRest}}--happyReduce_58 = happyReduce 5# 26# happyReduction_58-happyReduction_58 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> -	case happyOutTok happy_x_4 of { (TLit (LitNum happy_var_4)) -> -	happyIn30-		 (DeclareSort happy_var_3 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_59 = happyReduce 9# 26# happyReduction_59-happyReduction_59 (happy_x_9 `HappyStk`-	happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> -	case happyOut23 happy_x_5 of { happy_var_5 -> -	case happyOut14 happy_x_7 of { happy_var_7 -> -	case happyOut17 happy_x_8 of { happy_var_8 -> -	happyIn30-		 (DefineFun happy_var_3 happy_var_5 happy_var_7 happy_var_8-	) `HappyStk` happyRest}}}}--happyReduce_60 = happyReduce 5# 26# happyReduction_60-happyReduction_60 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> -	case happyOut14 happy_x_4 of { happy_var_4 -> -	happyIn30-		 (DefineSort happy_var_3 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_61 = happyReduce 4# 26# happyReduction_61-happyReduction_61 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> -	happyIn30-		 (SetLogic happy_var_3-	) `HappyStk` happyRest}--happyReduce_62 = happyReduce 6# 26# happyReduction_62-happyReduction_62 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_4 of { (TSymbol happy_var_4) -> -	case happyOut7 happy_x_5 of { happy_var_5 -> -	happyIn30-		 (SetOption happy_var_4 happy_var_5-	) `HappyStk` happyRest}}--happyReduce_63 = happySpecReduce_1  27# happyReduction_63-happyReduction_63 happy_x_1-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> -	happyIn31-		 (reverse happy_var_1-	)}--happyReduce_64 = happySpecReduce_2  28# happyReduction_64-happyReduction_64 happy_x_2-	happy_x_1-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> -	case happyOut33 happy_x_2 of { happy_var_2 -> -	happyIn32-		 (happy_var_2:happy_var_1-	)}}--happyReduce_65 = happySpecReduce_1  28# happyReduction_65-happyReduction_65 happy_x_1-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> -	happyIn32-		 ([happy_var_1]-	)}--happyReduce_66 = happyReduce 4# 29# happyReduction_66-happyReduction_66 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_2 of { (TSymbol happy_var_2) -> -	case happyOutTok happy_x_3 of { (TLit (LitNum happy_var_3)) -> -	happyIn33-		 (SortDecl happy_var_2 happy_var_3-	) `HappyStk` happyRest}}--happyReduce_67 = happySpecReduce_1  30# happyReduction_67-happyReduction_67 happy_x_1-	 =  case happyOut35 happy_x_1 of { happy_var_1 -> -	happyIn34-		 (reverse happy_var_1-	)}--happyReduce_68 = happySpecReduce_2  31# happyReduction_68-happyReduction_68 happy_x_2-	happy_x_1-	 =  case happyOut35 happy_x_1 of { happy_var_1 -> -	case happyOut36 happy_x_2 of { happy_var_2 -> -	happyIn35-		 (happy_var_2:happy_var_1-	)}}--happyReduce_69 = happySpecReduce_1  31# happyReduction_69-happyReduction_69 happy_x_1-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> -	happyIn35-		 ([happy_var_1]-	)}--happyReduce_70 = happySpecReduce_3  32# happyReduction_70-happyReduction_70 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_2 of { happy_var_2 -> -	happyIn36-		 (DTDec happy_var_2-	)}--happyReduce_71 = happySpecReduce_1  33# happyReduction_71-happyReduction_71 happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	happyIn37-		 (reverse happy_var_1-	)}--happyReduce_72 = happySpecReduce_2  34# happyReduction_72-happyReduction_72 happy_x_2-	happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	case happyOut39 happy_x_2 of { happy_var_2 -> -	happyIn38-		 (happy_var_2:happy_var_1-	)}}--happyReduce_73 = happySpecReduce_1  34# happyReduction_73-happyReduction_73 happy_x_1-	 =  case happyOut39 happy_x_1 of { happy_var_1 -> -	happyIn38-		 ([happy_var_1]-	)}--happyReduce_74 = happyReduce 4# 35# happyReduction_74-happyReduction_74 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_2 of { (TSymbol happy_var_2) -> -	case happyOut23 happy_x_3 of { happy_var_3 -> -	happyIn39-		 (DTConsDec happy_var_2 happy_var_3-	) `HappyStk` happyRest}}--happyReduce_75 = happySpecReduce_1  36# happyReduction_75-happyReduction_75 happy_x_1-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> -	happyIn40-		 (Just happy_var_1-	)}--happyReduce_76 = happySpecReduce_0  36# happyReduction_76-happyReduction_76  =  happyIn40-		 (Nothing-	)--happyReduce_77 = happyReduce 6# 37# happyReduction_77-happyReduction_77 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut21 happy_x_2 of { happy_var_2 -> -	case happyOut42 happy_x_5 of { happy_var_5 -> -	happyIn41-		 (GrammarDef happy_var_2 happy_var_5-	) `HappyStk` happyRest}}--happyReduce_78 = happySpecReduce_1  38# happyReduction_78-happyReduction_78 happy_x_1-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> -	happyIn42-		 (reverse happy_var_1-	)}--happyReduce_79 = happySpecReduce_2  39# happyReduction_79-happyReduction_79 happy_x_2-	happy_x_1-	 =  case happyOut43 happy_x_1 of { happy_var_1 -> -	case happyOut44 happy_x_2 of { happy_var_2 -> -	happyIn43-		 (happy_var_2:happy_var_1-	)}}--happyReduce_80 = happySpecReduce_1  39# happyReduction_80-happyReduction_80 happy_x_1-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> -	happyIn43-		 ([happy_var_1]-	)}--happyReduce_81 = happyReduce 7# 40# happyReduction_81-happyReduction_81 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_2 of { (TSymbol happy_var_2) -> -	case happyOut14 happy_x_3 of { happy_var_3 -> -	case happyOut45 happy_x_5 of { happy_var_5 -> -	happyIn44-		 (GroupedRuleList happy_var_2 happy_var_3 happy_var_5-	) `HappyStk` happyRest}}}--happyReduce_82 = happySpecReduce_1  41# happyReduction_82-happyReduction_82 happy_x_1-	 =  case happyOut46 happy_x_1 of { happy_var_1 -> -	happyIn45-		 (reverse happy_var_1-	)}--happyReduce_83 = happySpecReduce_2  42# happyReduction_83-happyReduction_83 happy_x_2-	happy_x_1-	 =  case happyOut46 happy_x_1 of { happy_var_1 -> -	case happyOut47 happy_x_2 of { happy_var_2 -> -	happyIn46-		 (happy_var_2:happy_var_1-	)}}--happyReduce_84 = happySpecReduce_1  42# happyReduction_84-happyReduction_84 happy_x_1-	 =  case happyOut47 happy_x_1 of { happy_var_1 -> -	happyIn46-		 ([happy_var_1]-	)}--happyReduce_85 = happySpecReduce_2  43# happyReduction_85-happyReduction_85 happy_x_2-	happy_x_1-	 =  case happyOut14 happy_x_2 of { happy_var_2 -> -	happyIn47-		 (GConstant happy_var_2-	)}--happyReduce_86 = happySpecReduce_2  43# happyReduction_86-happyReduction_86 happy_x_2-	happy_x_1-	 =  case happyOut14 happy_x_2 of { happy_var_2 -> -	happyIn47-		 (GVariable happy_var_2-	)}--happyReduce_87 = happySpecReduce_1  43# happyReduction_87-happyReduction_87 happy_x_1-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> -	happyIn47-		 (GBfTerm happy_var_1-	)}--happyNewToken action sts stk [] =-	happyDoAction 31# notHappyAtAll action sts stk []--happyNewToken action sts stk (tk:tks) =-	let cont i = happyDoAction i tk action sts stk tks in-	case tk of {-	TLit (LitNum happy_dollar_dollar) -> cont 1#;-	TLit (LitBool happy_dollar_dollar) -> cont 2#;-	TLit happy_dollar_dollar -> cont 3#;-	TUnderscore -> cont 4#;-	TOpenBracket -> cont 5#;-	TCloseBracket -> cont 6#;-	TColon -> cont 7#;-	TSymbol "exists" -> cont 8#;-	TSymbol "forall" -> cont 9#;-	TSymbol "let" -> cont 10#;-	TSymbol "grammars" -> cont 11#;-	TSymbol "fwd-decls" -> cont 12#;-	TSymbol "recursion" -> cont 13#;-	TSymbol "check-synth" -> cont 14#;-	TSymbol "constraint" -> cont 15#;-	TSymbol "declare-var" -> cont 16#;-	TSymbol "inv-constraint" -> cont 17#;-	TSymbol "set-feature" -> cont 18#;-	TSymbol "synth-fun" -> cont 19#;-	TSymbol "synth-inv" -> cont 20#;-	TSymbol "declare-datatype" -> cont 21#;-	TSymbol "declare-datatypes" -> cont 22#;-	TSymbol "declare-sort" -> cont 23#;-	TSymbol "define-fun" -> cont 24#;-	TSymbol "define-sort" -> cont 25#;-	TSymbol "set-logic" -> cont 26#;-	TSymbol "set-option" -> cont 27#;-	TSymbol "Constant" -> cont 28#;-	TSymbol "Variable" -> cont 29#;-	TSymbol happy_dollar_dollar -> cont 30#;-	_ -> happyError' ((tk:tks), [])-	}--happyError_ explist 31# tk tks = happyError' (tks, explist)-happyError_ explist _ tk tks = happyError' ((tk:tks), explist)--newtype HappyIdentity a = HappyIdentity a-happyIdentity = HappyIdentity-happyRunIdentity (HappyIdentity a) = a--instance Functor HappyIdentity where-    fmap f (HappyIdentity a) = HappyIdentity (f a)--instance Applicative HappyIdentity where-    pure  = HappyIdentity-    (<*>) = ap-instance Monad HappyIdentity where-    return = pure-    (HappyIdentity p) >>= q = q p--happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b-happyThen = (>>=)-happyReturn :: () => a -> HappyIdentity a-happyReturn = (return)-happyThen1 m k tks = (>>=) m (\a -> k a tks)-happyReturn1 :: () => a -> b -> HappyIdentity a-happyReturn1 = \a tks -> (return) a-happyError' :: () => ([(Token)], [String]) -> HappyIdentity a-happyError' = HappyIdentity . (\(tokens, _) -> parseError tokens)-parse tks = happyRunIdentity happySomeParser where- happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (happyOut4 x))+                        , parse+                        , parseCmd+                        , parseIndex+                        , parseBfTerm+                        , parseSortedVars+                        , parseSortedVars1+                        , parseSort+                        , parseMaybeGrammarDef+                        , parseGroupedRuleLists1 ) where++import Sygus.LexSygus+import Sygus.Syntax+import qualified Data.Array as Happy_Data_Array+import qualified Data.Bits as Bits+import qualified GHC.Exts as Happy_GHC_Exts+import Control.Applicative(Applicative(..))+import Control.Monad (ap)++-- parser produced by Happy Version 1.19.8++newtype HappyAbsSyn  = HappyAbsSyn HappyAny+#if __GLASGOW_HASKELL__ >= 607+type HappyAny = Happy_GHC_Exts.Any+#else+type HappyAny = forall a . a+#endif+happyIn12 :: ([Cmd]) -> (HappyAbsSyn )+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn12 #-}+happyOut12 :: (HappyAbsSyn ) -> ([Cmd])+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut12 #-}+happyIn13 :: ([Cmd]) -> (HappyAbsSyn )+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn13 #-}+happyOut13 :: (HappyAbsSyn ) -> ([Cmd])+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut13 #-}+happyIn14 :: (Cmd) -> (HappyAbsSyn )+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn14 #-}+happyOut14 :: (HappyAbsSyn ) -> (Cmd)+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut14 #-}+happyIn15 :: (Lit) -> (HappyAbsSyn )+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn15 #-}+happyOut15 :: (HappyAbsSyn ) -> (Lit)+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut15 #-}+happyIn16 :: (Identifier) -> (HappyAbsSyn )+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn16 #-}+happyOut16 :: (HappyAbsSyn ) -> (Identifier)+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut16 #-}+happyIn17 :: ([Index]) -> (HappyAbsSyn )+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn17 #-}+happyOut17 :: (HappyAbsSyn ) -> ([Index])+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut17 #-}+happyIn18 :: ([Index]) -> (HappyAbsSyn )+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn18 #-}+happyOut18 :: (HappyAbsSyn ) -> ([Index])+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut18 #-}+happyIn19 :: (Index) -> (HappyAbsSyn )+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn19 #-}+happyOut19 :: (HappyAbsSyn ) -> (Index)+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut19 #-}+happyIn20 :: ([Sort]) -> (HappyAbsSyn )+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn20 #-}+happyOut20 :: (HappyAbsSyn ) -> ([Sort])+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut20 #-}+happyIn21 :: ([Sort]) -> (HappyAbsSyn )+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn21 #-}+happyOut21 :: (HappyAbsSyn ) -> ([Sort])+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut21 #-}+happyIn22 :: (Sort) -> (HappyAbsSyn )+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn22 #-}+happyOut22 :: (HappyAbsSyn ) -> (Sort)+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut22 #-}+happyIn23 :: ([Term]) -> (HappyAbsSyn )+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn23 #-}+happyOut23 :: (HappyAbsSyn ) -> ([Term])+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut23 #-}+happyIn24 :: ([Term]) -> (HappyAbsSyn )+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn24 #-}+happyOut24 :: (HappyAbsSyn ) -> ([Term])+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut24 #-}+happyIn25 :: (Term) -> (HappyAbsSyn )+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn25 #-}+happyOut25 :: (HappyAbsSyn ) -> (Term)+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut25 #-}+happyIn26 :: ([BfTerm]) -> (HappyAbsSyn )+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn26 #-}+happyOut26 :: (HappyAbsSyn ) -> ([BfTerm])+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut26 #-}+happyIn27 :: ([BfTerm]) -> (HappyAbsSyn )+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn27 #-}+happyOut27 :: (HappyAbsSyn ) -> ([BfTerm])+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut27 #-}+happyIn28 :: (BfTerm) -> (HappyAbsSyn )+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn28 #-}+happyOut28 :: (HappyAbsSyn ) -> (BfTerm)+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut28 #-}+happyIn29 :: ([SortedVar]) -> (HappyAbsSyn )+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn29 #-}+happyOut29 :: (HappyAbsSyn ) -> ([SortedVar])+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut29 #-}+happyIn30 :: ([SortedVar]) -> (HappyAbsSyn )+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn30 #-}+happyOut30 :: (HappyAbsSyn ) -> ([SortedVar])+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut30 #-}+happyIn31 :: ([SortedVar]) -> (HappyAbsSyn )+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn31 #-}+happyOut31 :: (HappyAbsSyn ) -> ([SortedVar])+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut31 #-}+happyIn32 :: ([SortedVar]) -> (HappyAbsSyn )+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn32 #-}+happyOut32 :: (HappyAbsSyn ) -> ([SortedVar])+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut32 #-}+happyIn33 :: (SortedVar) -> (HappyAbsSyn )+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn33 #-}+happyOut33 :: (HappyAbsSyn ) -> (SortedVar)+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut33 #-}+happyIn34 :: ([VarBinding]) -> (HappyAbsSyn )+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn34 #-}+happyOut34 :: (HappyAbsSyn ) -> ([VarBinding])+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut34 #-}+happyIn35 :: ([VarBinding]) -> (HappyAbsSyn )+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn35 #-}+happyOut35 :: (HappyAbsSyn ) -> ([VarBinding])+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut35 #-}+happyIn36 :: (VarBinding) -> (HappyAbsSyn )+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn36 #-}+happyOut36 :: (HappyAbsSyn ) -> (VarBinding)+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut36 #-}+happyIn37 :: (Feature) -> (HappyAbsSyn )+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn37 #-}+happyOut37 :: (HappyAbsSyn ) -> (Feature)+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut37 #-}+happyIn38 :: (SmtCmd) -> (HappyAbsSyn )+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn38 #-}+happyOut38 :: (HappyAbsSyn ) -> (SmtCmd)+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut38 #-}+happyIn39 :: ([SortDecl]) -> (HappyAbsSyn )+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn39 #-}+happyOut39 :: (HappyAbsSyn ) -> ([SortDecl])+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut39 #-}+happyIn40 :: ([SortDecl]) -> (HappyAbsSyn )+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn40 #-}+happyOut40 :: (HappyAbsSyn ) -> ([SortDecl])+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut40 #-}+happyIn41 :: (SortDecl) -> (HappyAbsSyn )+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn41 #-}+happyOut41 :: (HappyAbsSyn ) -> (SortDecl)+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut41 #-}+happyIn42 :: ([DTDec]) -> (HappyAbsSyn )+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn42 #-}+happyOut42 :: (HappyAbsSyn ) -> ([DTDec])+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut42 #-}+happyIn43 :: ([DTDec]) -> (HappyAbsSyn )+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn43 #-}+happyOut43 :: (HappyAbsSyn ) -> ([DTDec])+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut43 #-}+happyIn44 :: (DTDec) -> (HappyAbsSyn )+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn44 #-}+happyOut44 :: (HappyAbsSyn ) -> (DTDec)+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut44 #-}+happyIn45 :: ([DTConsDec]) -> (HappyAbsSyn )+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn45 #-}+happyOut45 :: (HappyAbsSyn ) -> ([DTConsDec])+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut45 #-}+happyIn46 :: ([DTConsDec]) -> (HappyAbsSyn )+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn46 #-}+happyOut46 :: (HappyAbsSyn ) -> ([DTConsDec])+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut46 #-}+happyIn47 :: (DTConsDec) -> (HappyAbsSyn )+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn47 #-}+happyOut47 :: (HappyAbsSyn ) -> (DTConsDec)+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut47 #-}+happyIn48 :: (Maybe GrammarDef) -> (HappyAbsSyn )+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn48 #-}+happyOut48 :: (HappyAbsSyn ) -> (Maybe GrammarDef)+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut48 #-}+happyIn49 :: (GrammarDef) -> (HappyAbsSyn )+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn49 #-}+happyOut49 :: (HappyAbsSyn ) -> (GrammarDef)+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut49 #-}+happyIn50 :: ([GroupedRuleList]) -> (HappyAbsSyn )+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn50 #-}+happyOut50 :: (HappyAbsSyn ) -> ([GroupedRuleList])+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut50 #-}+happyIn51 :: ([GroupedRuleList]) -> (HappyAbsSyn )+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn51 #-}+happyOut51 :: (HappyAbsSyn ) -> ([GroupedRuleList])+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut51 #-}+happyIn52 :: (GroupedRuleList) -> (HappyAbsSyn )+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn52 #-}+happyOut52 :: (HappyAbsSyn ) -> (GroupedRuleList)+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut52 #-}+happyIn53 :: ([GTerm]) -> (HappyAbsSyn )+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn53 #-}+happyOut53 :: (HappyAbsSyn ) -> ([GTerm])+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut53 #-}+happyIn54 :: ([GTerm]) -> (HappyAbsSyn )+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn54 #-}+happyOut54 :: (HappyAbsSyn ) -> ([GTerm])+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut54 #-}+happyIn55 :: (GTerm) -> (HappyAbsSyn )+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn55 #-}+happyOut55 :: (HappyAbsSyn ) -> (GTerm)+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut55 #-}+happyInTok :: (Token) -> (HappyAbsSyn )+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyInTok #-}+happyOutTok :: (HappyAbsSyn ) -> (Token)+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOutTok #-}+++happyExpList :: HappyAddr+happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x0b\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x01\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x02\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x04\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x02\x00\x00\x04\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++{-# NOINLINE happyExpListPerState #-}+happyExpListPerState st =+    token_strs_expected+  where token_strs = ["error","%dummy","%start_parse","%start_parseCmd","%start_parseIndex","%start_parseBfTerm","%start_parseSortedVars","%start_parseSortedVars1","%start_parseSort","%start_parseMaybeGrammarDef","%start_parseGroupedRuleLists1","sygus","sygus_rev","cmd","lit","identifier","indexes1","indexes_rev1","index","sorts1","sorts_rev1","sort","terms1","terms_rev1","term","bfterms1","bfterms_rev1","bfterm","sorted_vars1","sorted_vars_rev1","sorted_vars","sorted_vars_rev","sorted_var","var_bindings1","var_bindings_rev1","var_binding","feature","smtCmd","sort_decls1","sort_decls_rev1","sort_decl","dt_decs1","dt_decs_rev1","dt_dec","dt_cons_decs1","dt_cons_decs_rev1","dt_cons_dec","maybe_grammar_def","grammar_def","grouped_rule_lists1","grouped_rule_lists_rev1","grouped_rule_list","gterm1","gterm_rev1","gterm","num","bool","other_lit","'_'","'('","')'","':'","exists","forall","tlet","grammars","fwdDecls","recursion","checkSynth","constraint","declareVar","invConstraint","setFeature","synthFun","synthInv","declareDatatype","declareDatatypes","declareSort","defineFun","defineSort","setLogic","setOption","constant","variable","symb","%eof"]+        bit_start = st * 86+        bit_end = (st + 1) * 86+        read_bit = readArrayBit happyExpList+        bits = map read_bit [bit_start..bit_end - 1]+        bits_indexed = zip bits [0..85]+        token_strs_expected = concatMap f bits_indexed+        f (False, _) = []+        f (True, nr) = [token_strs !! nr]++happyActOffsets :: HappyAddr+happyActOffsets = HappyA# "\x00\x00\x15\x00\x08\x00\x05\x00\x00\x00\x1a\x00\x10\x00\x1f\x00\x4d\x00\x00\x00\x4f\x00\xe4\xff\x7f\x00\x00\x00\xef\xff\x7b\x00\x00\x00\x99\x00\x00\x00\x86\x00\x07\x00\x00\x00\x86\x00\xc9\x00\x00\x00\xb2\x00\xb0\x00\xcc\x00\x00\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x00\x00\x07\x00\xb4\x00\x00\x00\x00\x00\xb4\x00\x00\x00\x48\x00\xb4\x00\xce\x00\x11\x00\xb8\x00\xb9\x00\xcb\x00\xba\x00\xbb\x00\xbc\x00\xd0\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xd8\x00\x16\x00\xc2\x00\xdd\x00\x00\x00\x10\x00\x00\x00\x10\x00\xdc\x00\x10\x00\x00\x00\x00\x00\xde\x00\xdf\x00\xe0\x00\x10\x00\x00\x00\xe1\x00\x08\x00\xe2\x00\x16\x00\x00\x00\xc7\x00\xe3\x00\x10\x00\xe5\x00\xea\x00\xe7\x00\xe8\x00\xe9\x00\xeb\x00\x90\x00\xd1\x00\x10\x00\x00\x00\x00\x00\xec\x00\x37\x00\x00\x00\x1b\x00\xee\x00\xef\x00\xf0\x00\x00\x00\xf1\x00\xd3\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x00\xf5\x00\xf3\x00\xf6\x00\x00\x00\xe4\x00\xf7\x00\x00\x00\xf8\x00\x00\x00\xab\x00\x00\x00\x00\x00\xf9\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x00\x30\x00\x00\x00\xfd\x00\x30\x00\x00\x00\x26\x00\xfe\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x01\x00\x00\x06\x01\x00\x00\xfc\x00\x02\x01\x04\x01\x00\x00\xed\x00\x00\x00\x07\x01\x08\x01\x09\x01\xfa\x00\x00\x00\x05\x01\x0b\x01\x0b\x01\x0c\x01\x35\x00\x00\x00\x00\x00\x00\x00\x0d\x01\x0e\x01\x0f\x01\x11\x01\x00\x00\x01\x01\x13\x01\x00\x00\x10\x00\x12\x01\x00\x00\x00\x00\x00\x00\x15\x01\x16\x01\x10\x00\x00\x00\x00\x00\x10\x00\x10\x00\x00\x00\x17\x01\x00\x00\x18\x01\x1a\x01\x35\x00\x00\x00\x1b\x01\x1d\x01\x00\x00\x1e\x01\x1f\x01\x21\x01\x00\x00\x35\x00\x00\x00\x35\x00\x35\x00\x35\x00\x22\x01\x23\x01\x24\x01\x25\x01\x26\x01\x00\x00\x00\x00\x00\x00\x27\x01\x28\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++happyGotoOffsets :: HappyAddr+happyGotoOffsets = HappyA# "\x0f\x00\x2b\x00\x0a\x01\x3a\x00\x0e\x00\x59\x00\x45\x00\x28\x00\x92\x00\x2e\x01\x2e\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x2c\x01\x00\x00\x00\x00\x1c\x01\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x00\x00\x00\x00\x00\x00\x00\x47\x00\x00\x00\x82\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x00\x00\x00\x00\x00\xaa\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x97\x00\x03\x01\x00\x00\x00\x00\x19\x01\x00\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x30\x01\x00\x00\x69\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x00\xb3\x00\x00\x00\x94\x00\x00\x00\x29\x01\x00\x00\x00\x00\x00\x00\xb5\x00\x00\x00\x00\x00\x33\x01\x00\x00\x00\x00\x00\x00\x14\x01\x00\x00\x00\x00\x00\x00\x00\x00\x98\x00\xfe\xff\x00\x00\x00\x00\x01\x00\x00\x00\x34\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x00\x91\x00\x96\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x00\x85\x00\xb7\x00\x00\x00\x00\x00\xa3\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x8e\x00\x95\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x00\x00\x00\x00\x31\x01\x00\x00\x00\x00\x00\x00\xa8\x00\x00\x00\x76\x00\x00\x00\x78\x00\x7a\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int#+happyAdjustOffset off = off++happyDefActions :: HappyAddr+happyDefActions = HappyA# "\xf4\xff\x00\x00\x00\x00\x00\x00\xc8\xff\x00\x00\x00\x00\xab\xff\x00\x00\x00\x00\xf6\xff\x00\x00\xa9\xff\xa7\xff\x00\x00\x00\x00\xac\xff\x00\x00\xde\xff\x00\x00\x00\x00\xe8\xff\x00\x00\xcd\xff\xcb\xff\x00\x00\x00\x00\xca\xff\xcf\xff\xd0\xff\x00\x00\xeb\xff\xea\xff\xe9\xff\x00\x00\x00\x00\xe3\xff\xe2\xff\x00\x00\xec\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff\x00\x00\xcc\xff\x00\x00\x00\x00\x00\x00\xa8\xff\xf5\xff\x00\x00\x00\x00\x00\x00\xe1\xff\xdf\xff\x00\x00\x00\x00\x00\x00\xd3\xff\xd1\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\xff\xd9\xff\x00\x00\x00\x00\xf3\xff\x00\x00\x00\x00\x00\x00\x00\x00\xf2\xff\x00\x00\x00\x00\x00\x00\xc2\xff\xc1\xff\xc0\xff\xc8\xff\xc8\xff\x00\x00\x00\x00\x00\x00\xb8\xff\xb6\xff\x00\x00\x00\x00\xc8\xff\x00\x00\xba\xff\x00\x00\xd2\xff\xce\xff\x00\x00\xe6\xff\xe4\xff\xc7\xff\xe0\xff\xdd\xff\x00\x00\x00\x00\xa0\xff\x00\x00\xa5\xff\xa3\xff\x00\x00\x00\x00\xe5\xff\xe7\xff\x00\x00\xbb\xff\x00\x00\xbd\xff\x00\x00\xb7\xff\x00\x00\x00\x00\xb0\xff\xae\xff\x00\x00\xbf\xff\x00\x00\x00\x00\x00\x00\x00\x00\xf1\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdc\xff\xda\xff\xdb\xff\xd7\xff\x00\x00\x00\x00\x00\x00\xc6\xff\xc4\xff\x00\x00\x00\x00\xef\xff\x00\x00\xab\xff\xc8\xff\xaf\xff\xb1\xff\x00\x00\x00\x00\x00\x00\xb9\xff\xaa\xff\x00\x00\x00\x00\xa4\xff\x00\x00\xa6\xff\x00\x00\x00\x00\x00\x00\xb5\xff\x00\x00\xb4\xff\xb2\xff\x00\x00\x00\x00\xab\xff\xf0\xff\x00\x00\xc5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\xad\xff\xb3\xff\x00\x00\x00\x00\xa2\xff\xa1\xff\xbc\xff\xbe\xff\xee\xff\xc3\xff\xd4\xff\xd5\xff\xd6\xff"#++happyCheck :: HappyAddr+happyCheck = HappyA# "\xff\xff\x03\x00\x04\x00\x1f\x00\x03\x00\x04\x00\x01\x00\x02\x00\x03\x00\x01\x00\x05\x00\x04\x00\x05\x00\x1e\x00\x10\x00\x00\x00\x01\x00\x10\x00\x01\x00\x02\x00\x03\x00\x05\x00\x05\x00\x01\x00\x02\x00\x03\x00\x05\x00\x05\x00\x01\x00\x02\x00\x03\x00\x05\x00\x05\x00\x13\x00\x14\x00\x1e\x00\x05\x00\x1e\x00\x1e\x00\x29\x00\x2a\x00\x2b\x00\x04\x00\x05\x00\x2b\x00\x02\x00\x1e\x00\x1e\x00\x02\x00\x01\x00\x02\x00\x03\x00\x1e\x00\x05\x00\x01\x00\x02\x00\x03\x00\x1e\x00\x05\x00\x04\x00\x05\x00\x03\x00\x04\x00\x08\x00\x09\x00\x0a\x00\x1c\x00\x1d\x00\x1e\x00\x1a\x00\x03\x00\x04\x00\x1a\x00\x04\x00\x10\x00\x04\x00\x24\x00\x25\x00\x1e\x00\x0a\x00\x0d\x00\x0a\x00\x05\x00\x1e\x00\x05\x00\x1e\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x03\x00\x04\x00\x03\x00\x04\x00\x03\x00\x04\x00\x11\x00\x12\x00\x03\x00\x04\x00\x15\x00\x0e\x00\x0f\x00\x10\x00\x0d\x00\x10\x00\x0b\x00\x0c\x00\x0d\x00\x03\x00\x04\x00\x03\x00\x04\x00\x03\x00\x04\x00\x03\x00\x04\x00\x03\x00\x04\x00\x0d\x00\x04\x00\x0d\x00\x05\x00\x0d\x00\x04\x00\x0d\x00\x0a\x00\x0d\x00\x08\x00\x09\x00\x0a\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x04\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x04\x00\x1f\x00\x0b\x00\x0c\x00\x0d\x00\x05\x00\x0a\x00\x11\x00\x12\x00\x11\x00\x12\x00\x15\x00\x1f\x00\x15\x00\x11\x00\x12\x00\x24\x00\x25\x00\x15\x00\x01\x00\x02\x00\x03\x00\x05\x00\x06\x00\x07\x00\x1b\x00\x1c\x00\x1d\x00\x21\x00\x22\x00\x23\x00\x26\x00\x27\x00\x28\x00\x16\x00\x17\x00\x18\x00\x26\x00\x27\x00\x28\x00\x1e\x00\x1f\x00\x20\x00\x13\x00\x14\x00\x13\x00\x14\x00\x13\x00\x14\x00\x13\x00\x14\x00\x24\x00\x25\x00\x05\x00\x1f\x00\x1e\x00\x05\x00\x07\x00\x1f\x00\x06\x00\x05\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x07\x00\x1e\x00\x04\x00\x06\x00\x05\x00\x05\x00\x1e\x00\x06\x00\x06\x00\x06\x00\x06\x00\x05\x00\x01\x00\x05\x00\x05\x00\x05\x00\x1e\x00\x05\x00\x1e\x00\x06\x00\x05\x00\x05\x00\x05\x00\x02\x00\x06\x00\x06\x00\x06\x00\x05\x00\x05\x00\x28\x00\x06\x00\x06\x00\x06\x00\x05\x00\x05\x00\x1e\x00\x06\x00\x06\x00\x06\x00\x06\x00\x01\x00\x06\x00\x05\x00\x05\x00\x1e\x00\xff\xff\x06\x00\x06\x00\x06\x00\x05\x00\x07\x00\x06\x00\x06\x00\x06\x00\x06\x00\x05\x00\x05\x00\x1e\x00\x06\x00\x05\x00\x07\x00\x06\x00\x06\x00\x06\x00\x1e\x00\x06\x00\x06\x00\x05\x00\x20\x00\x06\x00\x06\x00\x05\x00\xff\xff\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x06\x00\x01\x00\x04\x00\x15\x00\x19\x00\x04\x00\x04\x00\x15\x00\x03\x00\xff\xff\x04\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#++happyTable :: HappyAddr+happyTable = HappyA# "\x00\x00\x1c\x00\x1d\x00\xff\xff\x1c\x00\x1d\x00\x20\x00\x21\x00\x22\x00\x25\x00\x23\x00\x3a\x00\x3b\x00\x41\x00\x80\x00\x29\x00\x0a\x00\x80\x00\x20\x00\x21\x00\x22\x00\x15\x00\x5d\x00\x20\x00\x21\x00\x22\x00\x29\x00\x23\x00\x20\x00\x21\x00\x22\x00\x1a\x00\x5d\x00\x1a\x00\x1b\x00\x16\x00\x12\x00\x16\x00\x26\x00\x81\x00\x82\x00\x83\x00\x3a\x00\x3b\x00\xb5\x00\x26\x00\x16\x00\x16\x00\x42\x00\x20\x00\x21\x00\x22\x00\x16\x00\x85\x00\x20\x00\x21\x00\x22\x00\x16\x00\x5d\x00\x3a\x00\x3b\x00\x1c\x00\x1d\x00\x60\x00\x61\x00\x62\x00\xb4\x00\xb5\x00\x16\x00\x27\x00\x59\x00\x5a\x00\x27\x00\x12\x00\x1e\x00\x12\x00\x0f\x00\x10\x00\x16\x00\x13\x00\x5b\x00\x48\x00\x0f\x00\x16\x00\x29\x00\x16\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x1c\x00\x1d\x00\x1c\x00\x1d\x00\x59\x00\x5a\x00\x16\x00\x17\x00\x59\x00\x5a\x00\x18\x00\x4a\x00\x4b\x00\x4c\x00\x9f\x00\x76\x00\x9c\x00\x9d\x00\x9e\x00\x59\x00\x5a\x00\x59\x00\x5a\x00\x59\x00\x5a\x00\x59\x00\x5a\x00\x59\x00\x5a\x00\xd1\x00\x12\x00\xcb\x00\x0f\x00\xca\x00\x12\x00\xc9\x00\x43\x00\xc8\x00\x45\x00\x46\x00\x47\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x12\x00\x7c\x00\x73\x00\x63\x00\xc1\x00\xba\x00\xb9\x00\x12\x00\xff\xff\x67\x00\x68\x00\x69\x00\x1a\x00\xb8\x00\x3f\x00\x17\x00\xa2\x00\x17\x00\x18\x00\xff\xff\x18\x00\xa1\x00\x17\x00\xc0\x00\x10\x00\x18\x00\x20\x00\x21\x00\x22\x00\x78\x00\x79\x00\x7a\x00\x6d\x00\x6e\x00\x6f\x00\x8f\x00\x90\x00\x91\x00\x0b\x00\x0c\x00\x0d\x00\xa3\x00\xa4\x00\xa5\x00\x85\x00\x0c\x00\x0d\x00\xbc\x00\xbd\x00\xbe\x00\x95\x00\x1b\x00\x94\x00\x1b\x00\x8a\x00\x1b\x00\xbf\x00\x1b\x00\xcc\x00\x10\x00\x1a\x00\xff\xff\x3d\x00\x1a\x00\x57\x00\xff\xff\x5e\x00\x53\x00\x59\x00\x58\x00\x56\x00\x55\x00\x54\x00\x52\x00\x51\x00\x50\x00\x4f\x00\x4e\x00\x4a\x00\x3a\x00\x45\x00\x80\x00\x7f\x00\x76\x00\x7e\x00\x7c\x00\x78\x00\x75\x00\x73\x00\x72\x00\x71\x00\x6d\x00\x6b\x00\x65\x00\x6a\x00\x98\x00\x63\x00\x9c\x00\x9b\x00\x9a\x00\x97\x00\x99\x00\x94\x00\x8f\x00\x93\x00\x71\x00\x41\x00\x8c\x00\x8a\x00\x88\x00\x0f\x00\xaf\x00\x8d\x00\xb7\x00\xb3\x00\xb2\x00\xb1\x00\xb0\x00\xae\x00\x93\x00\xa7\x00\xac\x00\x00\x00\xab\x00\xaa\x00\xa9\x00\x1a\x00\x23\x00\xa1\x00\xc8\x00\xc7\x00\xc6\x00\xa7\x00\x12\x00\xa8\x00\xc3\x00\x6d\x00\x86\x00\xbc\x00\xb8\x00\xd4\x00\xc4\x00\xd3\x00\xd1\x00\x6d\x00\x6b\x00\xcf\x00\xce\x00\x12\x00\x00\x00\xdb\x00\xda\x00\xd9\x00\xd8\x00\xd7\x00\xd6\x00\xd5\x00\x0a\x00\x3e\x00\x3d\x00\x65\x00\x38\x00\x5e\x00\x3b\x00\x88\x00\x00\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++happyReduceArr = Happy_Data_Array.array (9, 95) [+	(9 , happyReduce_9),+	(10 , happyReduce_10),+	(11 , happyReduce_11),+	(12 , happyReduce_12),+	(13 , happyReduce_13),+	(14 , happyReduce_14),+	(15 , happyReduce_15),+	(16 , happyReduce_16),+	(17 , happyReduce_17),+	(18 , happyReduce_18),+	(19 , happyReduce_19),+	(20 , happyReduce_20),+	(21 , happyReduce_21),+	(22 , happyReduce_22),+	(23 , happyReduce_23),+	(24 , happyReduce_24),+	(25 , happyReduce_25),+	(26 , happyReduce_26),+	(27 , happyReduce_27),+	(28 , happyReduce_28),+	(29 , happyReduce_29),+	(30 , happyReduce_30),+	(31 , happyReduce_31),+	(32 , happyReduce_32),+	(33 , happyReduce_33),+	(34 , happyReduce_34),+	(35 , happyReduce_35),+	(36 , happyReduce_36),+	(37 , happyReduce_37),+	(38 , happyReduce_38),+	(39 , happyReduce_39),+	(40 , happyReduce_40),+	(41 , happyReduce_41),+	(42 , happyReduce_42),+	(43 , happyReduce_43),+	(44 , happyReduce_44),+	(45 , happyReduce_45),+	(46 , happyReduce_46),+	(47 , happyReduce_47),+	(48 , happyReduce_48),+	(49 , happyReduce_49),+	(50 , happyReduce_50),+	(51 , happyReduce_51),+	(52 , happyReduce_52),+	(53 , happyReduce_53),+	(54 , happyReduce_54),+	(55 , happyReduce_55),+	(56 , happyReduce_56),+	(57 , happyReduce_57),+	(58 , happyReduce_58),+	(59 , happyReduce_59),+	(60 , happyReduce_60),+	(61 , happyReduce_61),+	(62 , happyReduce_62),+	(63 , happyReduce_63),+	(64 , happyReduce_64),+	(65 , happyReduce_65),+	(66 , happyReduce_66),+	(67 , happyReduce_67),+	(68 , happyReduce_68),+	(69 , happyReduce_69),+	(70 , happyReduce_70),+	(71 , happyReduce_71),+	(72 , happyReduce_72),+	(73 , happyReduce_73),+	(74 , happyReduce_74),+	(75 , happyReduce_75),+	(76 , happyReduce_76),+	(77 , happyReduce_77),+	(78 , happyReduce_78),+	(79 , happyReduce_79),+	(80 , happyReduce_80),+	(81 , happyReduce_81),+	(82 , happyReduce_82),+	(83 , happyReduce_83),+	(84 , happyReduce_84),+	(85 , happyReduce_85),+	(86 , happyReduce_86),+	(87 , happyReduce_87),+	(88 , happyReduce_88),+	(89 , happyReduce_89),+	(90 , happyReduce_90),+	(91 , happyReduce_91),+	(92 , happyReduce_92),+	(93 , happyReduce_93),+	(94 , happyReduce_94),+	(95 , happyReduce_95)+	]++happy_n_terms = 32 :: Int+happy_n_nonterms = 44 :: Int++happyReduce_9 = happySpecReduce_1  0# happyReduction_9+happyReduction_9 happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	happyIn12+		 (reverse happy_var_1+	)}++happyReduce_10 = happySpecReduce_2  1# happyReduction_10+happyReduction_10 happy_x_2+	happy_x_1+	 =  case happyOut13 happy_x_1 of { happy_var_1 -> +	case happyOut14 happy_x_2 of { happy_var_2 -> +	happyIn13+		 (happy_var_2:happy_var_1+	)}}++happyReduce_11 = happySpecReduce_0  1# happyReduction_11+happyReduction_11  =  happyIn13+		 ([]+	)++happyReduce_12 = happySpecReduce_3  2# happyReduction_12+happyReduction_12 happy_x_3+	happy_x_2+	happy_x_1+	 =  happyIn14+		 (CheckSynth+	)++happyReduce_13 = happyReduce 4# 2# happyReduction_13+happyReduction_13 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut25 happy_x_3 of { happy_var_3 -> +	happyIn14+		 (Constraint happy_var_3+	) `HappyStk` happyRest}++happyReduce_14 = happyReduce 5# 2# happyReduction_14+happyReduction_14 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> +	case happyOut22 happy_x_4 of { happy_var_4 -> +	happyIn14+		 (DeclareVar happy_var_3 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_15 = happyReduce 7# 2# happyReduction_15+happyReduction_15 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> +	case happyOutTok happy_x_4 of { (TSymbol happy_var_4) -> +	case happyOutTok happy_x_5 of { (TSymbol happy_var_5) -> +	case happyOutTok happy_x_6 of { (TSymbol happy_var_6) -> +	happyIn14+		 (InvConstraint happy_var_3 happy_var_4 happy_var_5 happy_var_6+	) `HappyStk` happyRest}}}}++happyReduce_16 = happyReduce 6# 2# happyReduction_16+happyReduction_16 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut37 happy_x_4 of { happy_var_4 -> +	case happyOutTok happy_x_5 of { (TLit (LitBool happy_var_5)) -> +	happyIn14+		 (SetFeature happy_var_4 happy_var_5+	) `HappyStk` happyRest}}++happyReduce_17 = happyReduce 9# 2# happyReduction_17+happyReduction_17 (happy_x_9 `HappyStk`+	happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> +	case happyOut31 happy_x_5 of { happy_var_5 -> +	case happyOut22 happy_x_7 of { happy_var_7 -> +	case happyOut48 happy_x_8 of { happy_var_8 -> +	happyIn14+		 (SynthFun happy_var_3 happy_var_5 happy_var_7 happy_var_8+	) `HappyStk` happyRest}}}}++happyReduce_18 = happyReduce 8# 2# happyReduction_18+happyReduction_18 (happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> +	case happyOut31 happy_x_5 of { happy_var_5 -> +	case happyOut48 happy_x_7 of { happy_var_7 -> +	happyIn14+		 (SynthInv happy_var_3 happy_var_5 happy_var_7+	) `HappyStk` happyRest}}}++happyReduce_19 = happySpecReduce_1  2# happyReduction_19+happyReduction_19 happy_x_1+	 =  case happyOut38 happy_x_1 of { happy_var_1 -> +	happyIn14+		 (SmtCmd happy_var_1+	)}++happyReduce_20 = happySpecReduce_1  3# happyReduction_20+happyReduction_20 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TLit (LitNum happy_var_1)) -> +	happyIn15+		 (LitNum happy_var_1+	)}++happyReduce_21 = happySpecReduce_1  3# happyReduction_21+happyReduction_21 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TLit (LitBool happy_var_1)) -> +	happyIn15+		 (LitBool happy_var_1+	)}++happyReduce_22 = happySpecReduce_1  3# happyReduction_22+happyReduction_22 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TLit happy_var_1) -> +	happyIn15+		 (happy_var_1+	)}++happyReduce_23 = happySpecReduce_1  4# happyReduction_23+happyReduction_23 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TSymbol happy_var_1) -> +	happyIn16+		 (ISymb happy_var_1+	)}++happyReduce_24 = happyReduce 5# 4# happyReduction_24+happyReduction_24 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> +	case happyOut17 happy_x_4 of { happy_var_4 -> +	happyIn16+		 (Indexed happy_var_3 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_25 = happySpecReduce_1  5# happyReduction_25+happyReduction_25 happy_x_1+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> +	happyIn17+		 (reverse happy_var_1+	)}++happyReduce_26 = happySpecReduce_2  6# happyReduction_26+happyReduction_26 happy_x_2+	happy_x_1+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> +	case happyOut19 happy_x_2 of { happy_var_2 -> +	happyIn18+		 (happy_var_2:happy_var_1+	)}}++happyReduce_27 = happySpecReduce_1  6# happyReduction_27+happyReduction_27 happy_x_1+	 =  case happyOut19 happy_x_1 of { happy_var_1 -> +	happyIn18+		 ([happy_var_1]+	)}++happyReduce_28 = happySpecReduce_1  7# happyReduction_28+happyReduction_28 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TLit (LitNum happy_var_1)) -> +	happyIn19+		 (IndNumeral happy_var_1+	)}++happyReduce_29 = happySpecReduce_1  7# happyReduction_29+happyReduction_29 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TSymbol happy_var_1) -> +	happyIn19+		 (IndSymb happy_var_1+	)}++happyReduce_30 = happySpecReduce_1  8# happyReduction_30+happyReduction_30 happy_x_1+	 =  case happyOut21 happy_x_1 of { happy_var_1 -> +	happyIn20+		 (reverse happy_var_1+	)}++happyReduce_31 = happySpecReduce_2  9# happyReduction_31+happyReduction_31 happy_x_2+	happy_x_1+	 =  case happyOut21 happy_x_1 of { happy_var_1 -> +	case happyOut22 happy_x_2 of { happy_var_2 -> +	happyIn21+		 (happy_var_2:happy_var_1+	)}}++happyReduce_32 = happySpecReduce_1  9# happyReduction_32+happyReduction_32 happy_x_1+	 =  case happyOut22 happy_x_1 of { happy_var_1 -> +	happyIn21+		 ([happy_var_1]+	)}++happyReduce_33 = happySpecReduce_1  10# happyReduction_33+happyReduction_33 happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	happyIn22+		 (IdentSort happy_var_1+	)}++happyReduce_34 = happyReduce 4# 10# happyReduction_34+happyReduction_34 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut20 happy_x_3 of { happy_var_3 -> +	happyIn22+		 (IdentSortSort happy_var_2 happy_var_3+	) `HappyStk` happyRest}}++happyReduce_35 = happySpecReduce_1  11# happyReduction_35+happyReduction_35 happy_x_1+	 =  case happyOut24 happy_x_1 of { happy_var_1 -> +	happyIn23+		 (reverse happy_var_1+	)}++happyReduce_36 = happySpecReduce_2  12# happyReduction_36+happyReduction_36 happy_x_2+	happy_x_1+	 =  case happyOut24 happy_x_1 of { happy_var_1 -> +	case happyOut25 happy_x_2 of { happy_var_2 -> +	happyIn24+		 (happy_var_2:happy_var_1+	)}}++happyReduce_37 = happySpecReduce_1  12# happyReduction_37+happyReduction_37 happy_x_1+	 =  case happyOut25 happy_x_1 of { happy_var_1 -> +	happyIn24+		 ([happy_var_1]+	)}++happyReduce_38 = happySpecReduce_1  13# happyReduction_38+happyReduction_38 happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	happyIn25+		 (TermIdent happy_var_1+	)}++happyReduce_39 = happySpecReduce_1  13# happyReduction_39+happyReduction_39 happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	happyIn25+		 (TermLit happy_var_1+	)}++happyReduce_40 = happyReduce 4# 13# happyReduction_40+happyReduction_40 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut23 happy_x_3 of { happy_var_3 -> +	happyIn25+		 (TermCall happy_var_2 happy_var_3+	) `HappyStk` happyRest}}++happyReduce_41 = happyReduce 7# 13# happyReduction_41+happyReduction_41 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut29 happy_x_4 of { happy_var_4 -> +	case happyOut25 happy_x_6 of { happy_var_6 -> +	happyIn25+		 (TermExists happy_var_4 happy_var_6+	) `HappyStk` happyRest}}++happyReduce_42 = happyReduce 7# 13# happyReduction_42+happyReduction_42 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut29 happy_x_4 of { happy_var_4 -> +	case happyOut25 happy_x_6 of { happy_var_6 -> +	happyIn25+		 (TermForAll happy_var_4 happy_var_6+	) `HappyStk` happyRest}}++happyReduce_43 = happyReduce 7# 13# happyReduction_43+happyReduction_43 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut34 happy_x_4 of { happy_var_4 -> +	case happyOut25 happy_x_6 of { happy_var_6 -> +	happyIn25+		 (TermLet happy_var_4 happy_var_6+	) `HappyStk` happyRest}}++happyReduce_44 = happySpecReduce_1  14# happyReduction_44+happyReduction_44 happy_x_1+	 =  case happyOut27 happy_x_1 of { happy_var_1 -> +	happyIn26+		 (reverse happy_var_1+	)}++happyReduce_45 = happySpecReduce_2  15# happyReduction_45+happyReduction_45 happy_x_2+	happy_x_1+	 =  case happyOut27 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_2 of { happy_var_2 -> +	happyIn27+		 (happy_var_2:happy_var_1+	)}}++happyReduce_46 = happySpecReduce_1  15# happyReduction_46+happyReduction_46 happy_x_1+	 =  case happyOut28 happy_x_1 of { happy_var_1 -> +	happyIn27+		 ([happy_var_1]+	)}++happyReduce_47 = happySpecReduce_1  16# happyReduction_47+happyReduction_47 happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	happyIn28+		 (BfIdentifier happy_var_1+	)}++happyReduce_48 = happySpecReduce_1  16# happyReduction_48+happyReduction_48 happy_x_1+	 =  case happyOut15 happy_x_1 of { happy_var_1 -> +	happyIn28+		 (BfLiteral happy_var_1+	)}++happyReduce_49 = happyReduce 4# 16# happyReduction_49+happyReduction_49 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut26 happy_x_3 of { happy_var_3 -> +	happyIn28+		 (BfIdentifierBfs happy_var_2 happy_var_3+	) `HappyStk` happyRest}}++happyReduce_50 = happySpecReduce_1  17# happyReduction_50+happyReduction_50 happy_x_1+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> +	happyIn29+		 (reverse happy_var_1+	)}++happyReduce_51 = happySpecReduce_2  18# happyReduction_51+happyReduction_51 happy_x_2+	happy_x_1+	 =  case happyOut30 happy_x_1 of { happy_var_1 -> +	case happyOut33 happy_x_2 of { happy_var_2 -> +	happyIn30+		 (happy_var_2:happy_var_1+	)}}++happyReduce_52 = happySpecReduce_1  18# happyReduction_52+happyReduction_52 happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	happyIn30+		 ([happy_var_1]+	)}++happyReduce_53 = happySpecReduce_1  19# happyReduction_53+happyReduction_53 happy_x_1+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> +	happyIn31+		 (reverse happy_var_1+	)}++happyReduce_54 = happySpecReduce_2  20# happyReduction_54+happyReduction_54 happy_x_2+	happy_x_1+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> +	case happyOut33 happy_x_2 of { happy_var_2 -> +	happyIn32+		 (happy_var_2:happy_var_1+	)}}++happyReduce_55 = happySpecReduce_0  20# happyReduction_55+happyReduction_55  =  happyIn32+		 ([]+	)++happyReduce_56 = happyReduce 4# 21# happyReduction_56+happyReduction_56 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_2 of { (TSymbol happy_var_2) -> +	case happyOut22 happy_x_3 of { happy_var_3 -> +	happyIn33+		 (SortedVar happy_var_2 happy_var_3+	) `HappyStk` happyRest}}++happyReduce_57 = happySpecReduce_1  22# happyReduction_57+happyReduction_57 happy_x_1+	 =  case happyOut35 happy_x_1 of { happy_var_1 -> +	happyIn34+		 (reverse happy_var_1+	)}++happyReduce_58 = happySpecReduce_2  23# happyReduction_58+happyReduction_58 happy_x_2+	happy_x_1+	 =  case happyOut35 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_2 of { happy_var_2 -> +	happyIn35+		 (happy_var_2:happy_var_1+	)}}++happyReduce_59 = happySpecReduce_1  23# happyReduction_59+happyReduction_59 happy_x_1+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> +	happyIn35+		 ([happy_var_1]+	)}++happyReduce_60 = happyReduce 4# 24# happyReduction_60+happyReduction_60 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_2 of { (TSymbol happy_var_2) -> +	case happyOut25 happy_x_3 of { happy_var_3 -> +	happyIn36+		 (VarBinding happy_var_2 happy_var_3+	) `HappyStk` happyRest}}++happyReduce_61 = happySpecReduce_1  25# happyReduction_61+happyReduction_61 happy_x_1+	 =  happyIn37+		 (Grammars+	)++happyReduce_62 = happySpecReduce_1  25# happyReduction_62+happyReduction_62 happy_x_1+	 =  happyIn37+		 (FwdDecls+	)++happyReduce_63 = happySpecReduce_1  25# happyReduction_63+happyReduction_63 happy_x_1+	 =  happyIn37+		 (Recursion+	)++happyReduce_64 = happyReduce 5# 26# happyReduction_64+happyReduction_64 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> +	case happyOut44 happy_x_4 of { happy_var_4 -> +	happyIn38+		 (DeclareDatatype happy_var_3 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_65 = happyReduce 9# 26# happyReduction_65+happyReduction_65 (happy_x_9 `HappyStk`+	happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut39 happy_x_4 of { happy_var_4 -> +	case happyOut42 happy_x_7 of { happy_var_7 -> +	happyIn38+		 (DeclareDatatypes happy_var_4 happy_var_7+	) `HappyStk` happyRest}}++happyReduce_66 = happyReduce 5# 26# happyReduction_66+happyReduction_66 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> +	case happyOutTok happy_x_4 of { (TLit (LitNum happy_var_4)) -> +	happyIn38+		 (DeclareSort happy_var_3 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_67 = happyReduce 9# 26# happyReduction_67+happyReduction_67 (happy_x_9 `HappyStk`+	happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> +	case happyOut31 happy_x_5 of { happy_var_5 -> +	case happyOut22 happy_x_7 of { happy_var_7 -> +	case happyOut25 happy_x_8 of { happy_var_8 -> +	happyIn38+		 (DefineFun happy_var_3 happy_var_5 happy_var_7 happy_var_8+	) `HappyStk` happyRest}}}}++happyReduce_68 = happyReduce 5# 26# happyReduction_68+happyReduction_68 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> +	case happyOut22 happy_x_4 of { happy_var_4 -> +	happyIn38+		 (DefineSort happy_var_3 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_69 = happyReduce 4# 26# happyReduction_69+happyReduction_69 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_3 of { (TSymbol happy_var_3) -> +	happyIn38+		 (SetLogic happy_var_3+	) `HappyStk` happyRest}++happyReduce_70 = happyReduce 6# 26# happyReduction_70+happyReduction_70 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_4 of { (TSymbol happy_var_4) -> +	case happyOut15 happy_x_5 of { happy_var_5 -> +	happyIn38+		 (SetOption happy_var_4 happy_var_5+	) `HappyStk` happyRest}}++happyReduce_71 = happySpecReduce_1  27# happyReduction_71+happyReduction_71 happy_x_1+	 =  case happyOut40 happy_x_1 of { happy_var_1 -> +	happyIn39+		 (reverse happy_var_1+	)}++happyReduce_72 = happySpecReduce_2  28# happyReduction_72+happyReduction_72 happy_x_2+	happy_x_1+	 =  case happyOut40 happy_x_1 of { happy_var_1 -> +	case happyOut41 happy_x_2 of { happy_var_2 -> +	happyIn40+		 (happy_var_2:happy_var_1+	)}}++happyReduce_73 = happySpecReduce_1  28# happyReduction_73+happyReduction_73 happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	happyIn40+		 ([happy_var_1]+	)}++happyReduce_74 = happyReduce 4# 29# happyReduction_74+happyReduction_74 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_2 of { (TSymbol happy_var_2) -> +	case happyOutTok happy_x_3 of { (TLit (LitNum happy_var_3)) -> +	happyIn41+		 (SortDecl happy_var_2 happy_var_3+	) `HappyStk` happyRest}}++happyReduce_75 = happySpecReduce_1  30# happyReduction_75+happyReduction_75 happy_x_1+	 =  case happyOut43 happy_x_1 of { happy_var_1 -> +	happyIn42+		 (reverse happy_var_1+	)}++happyReduce_76 = happySpecReduce_2  31# happyReduction_76+happyReduction_76 happy_x_2+	happy_x_1+	 =  case happyOut43 happy_x_1 of { happy_var_1 -> +	case happyOut44 happy_x_2 of { happy_var_2 -> +	happyIn43+		 (happy_var_2:happy_var_1+	)}}++happyReduce_77 = happySpecReduce_1  31# happyReduction_77+happyReduction_77 happy_x_1+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> +	happyIn43+		 ([happy_var_1]+	)}++happyReduce_78 = happySpecReduce_3  32# happyReduction_78+happyReduction_78 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut45 happy_x_2 of { happy_var_2 -> +	happyIn44+		 (DTDec happy_var_2+	)}++happyReduce_79 = happySpecReduce_1  33# happyReduction_79+happyReduction_79 happy_x_1+	 =  case happyOut46 happy_x_1 of { happy_var_1 -> +	happyIn45+		 (reverse happy_var_1+	)}++happyReduce_80 = happySpecReduce_2  34# happyReduction_80+happyReduction_80 happy_x_2+	happy_x_1+	 =  case happyOut46 happy_x_1 of { happy_var_1 -> +	case happyOut47 happy_x_2 of { happy_var_2 -> +	happyIn46+		 (happy_var_2:happy_var_1+	)}}++happyReduce_81 = happySpecReduce_1  34# happyReduction_81+happyReduction_81 happy_x_1+	 =  case happyOut47 happy_x_1 of { happy_var_1 -> +	happyIn46+		 ([happy_var_1]+	)}++happyReduce_82 = happyReduce 4# 35# happyReduction_82+happyReduction_82 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_2 of { (TSymbol happy_var_2) -> +	case happyOut31 happy_x_3 of { happy_var_3 -> +	happyIn47+		 (DTConsDec happy_var_2 happy_var_3+	) `HappyStk` happyRest}}++happyReduce_83 = happySpecReduce_1  36# happyReduction_83+happyReduction_83 happy_x_1+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> +	happyIn48+		 (Just happy_var_1+	)}++happyReduce_84 = happySpecReduce_0  36# happyReduction_84+happyReduction_84  =  happyIn48+		 (Nothing+	)++happyReduce_85 = happyReduce 6# 37# happyReduction_85+happyReduction_85 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut29 happy_x_2 of { happy_var_2 -> +	case happyOut50 happy_x_5 of { happy_var_5 -> +	happyIn49+		 (GrammarDef happy_var_2 happy_var_5+	) `HappyStk` happyRest}}++happyReduce_86 = happySpecReduce_1  38# happyReduction_86+happyReduction_86 happy_x_1+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> +	happyIn50+		 (reverse happy_var_1+	)}++happyReduce_87 = happySpecReduce_2  39# happyReduction_87+happyReduction_87 happy_x_2+	happy_x_1+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> +	case happyOut52 happy_x_2 of { happy_var_2 -> +	happyIn51+		 (happy_var_2:happy_var_1+	)}}++happyReduce_88 = happySpecReduce_1  39# happyReduction_88+happyReduction_88 happy_x_1+	 =  case happyOut52 happy_x_1 of { happy_var_1 -> +	happyIn51+		 ([happy_var_1]+	)}++happyReduce_89 = happyReduce 7# 40# happyReduction_89+happyReduction_89 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_2 of { (TSymbol happy_var_2) -> +	case happyOut22 happy_x_3 of { happy_var_3 -> +	case happyOut53 happy_x_5 of { happy_var_5 -> +	happyIn52+		 (GroupedRuleList happy_var_2 happy_var_3 happy_var_5+	) `HappyStk` happyRest}}}++happyReduce_90 = happySpecReduce_1  41# happyReduction_90+happyReduction_90 happy_x_1+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> +	happyIn53+		 (reverse happy_var_1+	)}++happyReduce_91 = happySpecReduce_2  42# happyReduction_91+happyReduction_91 happy_x_2+	happy_x_1+	 =  case happyOut54 happy_x_1 of { happy_var_1 -> +	case happyOut55 happy_x_2 of { happy_var_2 -> +	happyIn54+		 (happy_var_2:happy_var_1+	)}}++happyReduce_92 = happySpecReduce_1  42# happyReduction_92+happyReduction_92 happy_x_1+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> +	happyIn54+		 ([happy_var_1]+	)}++happyReduce_93 = happyReduce 4# 43# happyReduction_93+happyReduction_93 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut22 happy_x_3 of { happy_var_3 -> +	happyIn55+		 (GConstant happy_var_3+	) `HappyStk` happyRest}++happyReduce_94 = happyReduce 4# 43# happyReduction_94+happyReduction_94 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut22 happy_x_3 of { happy_var_3 -> +	happyIn55+		 (GVariable happy_var_3+	) `HappyStk` happyRest}++happyReduce_95 = happySpecReduce_1  43# happyReduction_95+happyReduction_95 happy_x_1+	 =  case happyOut28 happy_x_1 of { happy_var_1 -> +	happyIn55+		 (GBfTerm happy_var_1+	)}++happyNewToken action sts stk [] =+	happyDoAction 31# notHappyAtAll action sts stk []++happyNewToken action sts stk (tk:tks) =+	let cont i = happyDoAction i tk action sts stk tks in+	case tk of {+	TLit (LitNum happy_dollar_dollar) -> cont 1#;+	TLit (LitBool happy_dollar_dollar) -> cont 2#;+	TLit happy_dollar_dollar -> cont 3#;+	TUnderscore -> cont 4#;+	TOpenBracket -> cont 5#;+	TCloseBracket -> cont 6#;+	TColon -> cont 7#;+	TSymbol "exists" -> cont 8#;+	TSymbol "forall" -> cont 9#;+	TSymbol "let" -> cont 10#;+	TSymbol "grammars" -> cont 11#;+	TSymbol "fwd-decls" -> cont 12#;+	TSymbol "recursion" -> cont 13#;+	TSymbol "check-synth" -> cont 14#;+	TSymbol "constraint" -> cont 15#;+	TSymbol "declare-var" -> cont 16#;+	TSymbol "inv-constraint" -> cont 17#;+	TSymbol "set-feature" -> cont 18#;+	TSymbol "synth-fun" -> cont 19#;+	TSymbol "synth-inv" -> cont 20#;+	TSymbol "declare-datatype" -> cont 21#;+	TSymbol "declare-datatypes" -> cont 22#;+	TSymbol "declare-sort" -> cont 23#;+	TSymbol "define-fun" -> cont 24#;+	TSymbol "define-sort" -> cont 25#;+	TSymbol "set-logic" -> cont 26#;+	TSymbol "set-option" -> cont 27#;+	TSymbol "Constant" -> cont 28#;+	TSymbol "Variable" -> cont 29#;+	TSymbol happy_dollar_dollar -> cont 30#;+	_ -> happyError' ((tk:tks), [])+	}++happyError_ explist 31# tk tks = happyError' (tks, explist)+happyError_ explist _ tk tks = happyError' ((tk:tks), explist)++newtype HappyIdentity a = HappyIdentity a+happyIdentity = HappyIdentity+happyRunIdentity (HappyIdentity a) = a++instance Functor HappyIdentity where+    fmap f (HappyIdentity a) = HappyIdentity (f a)++instance Applicative HappyIdentity where+    pure  = HappyIdentity+    (<*>) = ap+instance Monad HappyIdentity where+    return = pure+    (HappyIdentity p) >>= q = q p++happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b+happyThen = (>>=)+happyReturn :: () => a -> HappyIdentity a+happyReturn = (return)+happyThen1 m k tks = (>>=) m (\a -> k a tks)+happyReturn1 :: () => a -> b -> HappyIdentity a+happyReturn1 = \a tks -> (return) a+happyError' :: () => ([(Token)], [String]) -> HappyIdentity a+happyError' = HappyIdentity . (\(tokens, _) -> parseError tokens)+parse tks = happyRunIdentity happySomeParser where+ happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (happyOut12 x))++parseCmd tks = happyRunIdentity happySomeParser where+ happySomeParser = happyThen (happyParse 1# tks) (\x -> happyReturn (happyOut14 x))++parseIndex tks = happyRunIdentity happySomeParser where+ happySomeParser = happyThen (happyParse 2# tks) (\x -> happyReturn (happyOut19 x))++parseBfTerm tks = happyRunIdentity happySomeParser where+ happySomeParser = happyThen (happyParse 3# tks) (\x -> happyReturn (happyOut28 x))++parseSortedVars tks = happyRunIdentity happySomeParser where+ happySomeParser = happyThen (happyParse 4# tks) (\x -> happyReturn (happyOut31 x))++parseSortedVars1 tks = happyRunIdentity happySomeParser where+ happySomeParser = happyThen (happyParse 5# tks) (\x -> happyReturn (happyOut29 x))++parseSort tks = happyRunIdentity happySomeParser where+ happySomeParser = happyThen (happyParse 6# tks) (\x -> happyReturn (happyOut22 x))++parseMaybeGrammarDef tks = happyRunIdentity happySomeParser where+ happySomeParser = happyThen (happyParse 7# tks) (\x -> happyReturn (happyOut48 x))++parseGroupedRuleLists1 tks = happyRunIdentity happySomeParser where+ happySomeParser = happyThen (happyParse 8# tks) (\x -> happyReturn (happyOut50 x))  happySeq = happyDontSeq 
language-sygus.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                language-sygus-version:             0.1.1.1+version:             0.1.1.2 synopsis:            A parser and printer for the SyGuS 2.0 language.    description:         A parser and printer for the SyGuS 2.0 language.  <https://sygus.org/assets/pdf/SyGuS-IF_2.0.pdf> license:             BSD3@@ -28,6 +28,7 @@   -- other-extensions:       build-depends:         array >= 0.3 && < 0.6                        , base >=4.10 && < 4.13+                       , hashable >= 1.2.6.0 && <= 1.3.0.0                        , text >= 1.1 && < 1.4   hs-source-dirs:      src   default-language:    Haskell2010
src/Sygus/LexSygus.x view
@@ -15,7 +15,7 @@  tokens:-     $white+                                 ;-    $digit+'.'$digit                        { TLit . LitDec }+    $digit+'.'$digit                        { TLit. parseDec }     $digit+                                 { TLit . LitNum . read }     true                                    { TLit . const (LitBool True) }     false                                   { TLit . const (LitBool False) }@@ -50,5 +50,12 @@ elimOpenCloseQuote' ('"':[]) = [] elimOpenCloseQuote' (x:xs) = x:elimOpenCloseQuote' xs elimOpenCloseQuote' [] = error "elimOpenCloseQuote': Bad string"++parseDec :: String -> Lit+parseDec s =+  let+      (n, _:d) = break (== '.') s+  in+  LitDec (read n) (read d)  }
src/Sygus/ParseSygus.y view
@@ -1,12 +1,29 @@ { module Sygus.ParseSygus ( module Sygus.Syntax -                        , parse ) where+                        , parse+                        , parseCmd+                        , parseIndex+                        , parseBfTerm+                        , parseSortedVars+                        , parseSortedVars1+                        , parseSort+                        , parseMaybeGrammarDef+                        , parseGroupedRuleLists1 ) where  import Sygus.LexSygus import Sygus.Syntax } -%name parse+%name parse sygus+%name parseCmd cmd+%name parseIndex index+%name parseBfTerm bfterm+%name parseSortedVars sorted_vars+%name parseSortedVars1 sorted_vars1+%name parseSort sort+%name parseMaybeGrammarDef maybe_grammar_def+%name parseGroupedRuleLists1 grouped_rule_lists1+ %tokentype { Token } %error { parseError } @@ -225,8 +242,8 @@             | gterm            { [$1] }  gterm :: { GTerm }-       : constant sort { GConstant $2 }-       | variable sort { GVariable $2 }+       : '(' constant sort ')' { GConstant $3 }+       | '(' variable sort ')' { GVariable $3 }        | bfterm        { GBfTerm $1 }  {
src/Sygus/Print.hs view
@@ -16,7 +16,7 @@     printSygus (LitNum i)         | i >= 0 = pack $ show i         | otherwise = pack $ "(- " ++ show (abs i) ++ ")"-    printSygus (LitDec s) = pack s+    printSygus (LitDec n d) = pack (show n ++ "." ++ show d)      printSygus (LitBool b) = printSygus b     printSygus (Hexidecimal s) = pack s     printSygus (Binary s) = pack s
src/Sygus/Syntax.hs view
@@ -1,12 +1,19 @@+{-# LANGUAGE DeriveGeneric #-}+ module Sygus.Syntax where +import Data.Hashable+import GHC.Generics (Generic)+ data Lit = LitNum Integer -         | LitDec String+         | LitDec Integer Integer          | LitBool Bool          | Hexidecimal String          | Binary String-         | LitStr String deriving (Eq, Show, Read)+         | LitStr String deriving (Eq, Show, Read, Generic) +instance Hashable Lit+ type Symbol = String  data Cmd = CheckSynth@@ -17,42 +24,60 @@          | SynthFun Symbol [SortedVar] Sort (Maybe GrammarDef)          | SynthInv Symbol [SortedVar] (Maybe GrammarDef)          | SmtCmd SmtCmd-         deriving (Eq, Show, Read)+         deriving (Eq, Show, Read, Generic) +instance Hashable Cmd+ data Identifier = ISymb Symbol                 | Indexed Symbol [Index]-                deriving (Eq, Show, Read)+                deriving (Eq, Show, Read, Generic) +instance Hashable Identifier+ data Index = IndNumeral Integer            | IndSymb Symbol-           deriving (Eq, Show, Read)+           deriving (Eq, Show, Read, Generic) +instance Hashable Index+ data Sort = IdentSort Identifier           | IdentSortSort Identifier [Sort]-          deriving (Eq, Show, Read)+          deriving (Eq, Show, Read, Generic) +instance Hashable Sort+ data Term = TermIdent Identifier           | TermLit Lit           | TermCall Identifier [Term]           | TermExists [SortedVar] Term           | TermForAll [SortedVar] Term           | TermLet [VarBinding] Term-          deriving (Eq, Show, Read)+          deriving (Eq, Show, Read, Generic) +instance Hashable Term+ data BfTerm = BfIdentifier Identifier             | BfLiteral Lit             | BfIdentifierBfs Identifier [BfTerm]-            deriving (Eq, Show, Read)+            deriving (Eq, Show, Read, Generic) -data SortedVar = SortedVar Symbol Sort deriving (Eq, Show, Read)+instance Hashable BfTerm -data VarBinding = VarBinding Symbol Term deriving (Eq, Show, Read)+data SortedVar = SortedVar Symbol Sort deriving (Eq, Show, Read, Generic) +instance Hashable SortedVar++data VarBinding = VarBinding Symbol Term deriving (Eq, Show, Read, Generic)++instance Hashable VarBinding+ data Feature = Grammars              | FwdDecls              | Recursion-             deriving (Eq, Show, Read)+             deriving (Eq, Show, Read, Generic) +instance Hashable Feature+ data SmtCmd = DeclareDatatype Symbol DTDec             | DeclareDatatypes [SortDecl] [DTDec]             | DeclareSort Symbol Integer@@ -60,19 +85,33 @@             | DefineSort Symbol Sort             | SetLogic Symbol             | SetOption Symbol Lit-            deriving (Eq, Show, Read)+            deriving (Eq, Show, Read, Generic) -data SortDecl = SortDecl Symbol Integer deriving (Eq, Show, Read)+instance Hashable SmtCmd -data DTDec = DTDec [DTConsDec] deriving (Eq, Show, Read)+data SortDecl = SortDecl Symbol Integer deriving (Eq, Show, Read, Generic) -data DTConsDec = DTConsDec Symbol [SortedVar] deriving (Eq, Show, Read)+instance Hashable SortDecl -data GrammarDef = GrammarDef [SortedVar] [GroupedRuleList] deriving (Eq, Show, Read)+data DTDec = DTDec [DTConsDec] deriving (Eq, Show, Read, Generic) -data GroupedRuleList = GroupedRuleList Symbol Sort [GTerm] deriving (Eq, Show, Read)+instance Hashable DTDec +data DTConsDec = DTConsDec Symbol [SortedVar] deriving (Eq, Show, Read, Generic)++instance Hashable DTConsDec++data GrammarDef = GrammarDef [SortedVar] [GroupedRuleList] deriving (Eq, Show, Read, Generic)++instance Hashable GrammarDef++data GroupedRuleList = GroupedRuleList Symbol Sort [GTerm] deriving (Eq, Show, Read, Generic)++instance Hashable GroupedRuleList+ data GTerm = GConstant Sort            | GVariable Sort            | GBfTerm BfTerm-           deriving (Eq, Show, Read)+           deriving (Eq, Show, Read, Generic)++instance Hashable GTerm
tests/Test.hs view
@@ -35,7 +35,9 @@     , "tests/sygus/example3.sl"     , "tests/sygus/example4.sl"     , "tests/sygus/example5.sl"-    , "tests/sygus/example6.sl" ]+    , "tests/sygus/example6.sl"+    , "tests/sygus/example7.sl"+    , "tests/sygus/example8.sl" ]  checkParses :: FilePath -> IO TestTree checkParses fp = do