sbv-13.1: SMT Based Verification: Symbolic Haskell theorem prover using SMT solving.
Copyright(c) Levent Erkok
LicenseBSD3
Maintainererkokl@gmail.com
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Documentation.SBV.Examples.Puzzles.Fish

Description

Solves the following logic puzzle, attributed to Albert Einstein:

  • The Briton lives in the red house.
  • The Swede keeps dogs as pets.
  • The Dane drinks tea.
  • The green house is left to the white house.
  • The owner of the green house drinks coffee.
  • The person who plays football rears birds.
  • The owner of the yellow house plays baseball.
  • The man living in the center house drinks milk.
  • The Norwegian lives in the first house.
  • The man who plays volleyball lives next to the one who keeps cats.
  • The man who keeps the horse lives next to the one who plays baseball.
  • The owner who plays tennis drinks beer.
  • The German plays hockey.
  • The Norwegian lives next to the blue house.
  • The man who plays volleyball has a neighbor who drinks water.

Who owns the fish?

Synopsis

Documentation

data Color Source #

Colors of houses

Constructors

Red 
Green 
White 
Yellow 
Blue 

Instances

Instances details
Arbitrary Color Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

arbitrary :: Gen Color #

shrink :: Color -> [Color] #

SymVal Color Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

HasKind Color Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

EnumSymbolic Color Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

SatModel Color Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

parseCVs :: [CV] -> Maybe (Color, [CV]) Source #

cvtModel :: (Color -> Maybe b) -> Maybe (Color, [CV]) -> Maybe (b, [CV]) Source #

OrdSymbolic (SBV Color) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

HasInductionSchema (Forall ta Color -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Color -> SBool) -> ProofObj Source #

SymVal extraT => HasInductionSchema (Forall ta Color -> Forall extraS extraT -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Color -> Forall extraS extraT -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2) => HasInductionSchema (Forall ta Color -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Color -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3) => HasInductionSchema (Forall ta Color -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Color -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3, SymVal extraT4) => HasInductionSchema (Forall ta Color -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Color -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3, SymVal extraT4, SymVal extraT5) => HasInductionSchema (Forall ta Color -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> Forall extraS5 extraT5 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Color -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> Forall extraS5 extraT5 -> SBool) -> ProofObj Source #

cv2Color :: String -> [CV] -> Color Source #

Conversion from SMT values to Color values.

_undefiner_Color :: a Source #

Autogenerated definition to avoid unused-variable warnings from GHC.

type SColor = SBV Color Source #

Symbolic version of the type Color.

sRed :: SBV Color Source #

Symbolic version of the constructor Red.

sGreen :: SBV Color Source #

Symbolic version of the constructor Green.

sWhite :: SBV Color Source #

Symbolic version of the constructor White.

sYellow :: SBV Color Source #

Symbolic version of the constructor Yellow.

sBlue :: SBV Color Source #

Symbolic version of the constructor Blue.

isRed :: SBV Color -> SBool Source #

Field recognizer predicate.

isGreen :: SBV Color -> SBool Source #

Field recognizer predicate.

isWhite :: SBV Color -> SBool Source #

Field recognizer predicate.

isYellow :: SBV Color -> SBool Source #

Field recognizer predicate.

isBlue :: SBV Color -> SBool Source #

Field recognizer predicate.

sCaseColor :: Mergeable result => SBV Color -> result -> result -> result -> result -> result -> result Source #

Case analyzer for the type Color.

data Nationality Source #

Nationalities of the occupants

Constructors

Briton 
Dane 
Swede 
Norwegian 
German 

Instances

Instances details
Arbitrary Nationality Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Show Nationality Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

SymVal Nationality Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

HasKind Nationality Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

EnumSymbolic Nationality Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

SatModel Nationality Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

parseCVs :: [CV] -> Maybe (Nationality, [CV]) Source #

cvtModel :: (Nationality -> Maybe b) -> Maybe (Nationality, [CV]) -> Maybe (b, [CV]) Source #

OrdSymbolic (SBV Nationality) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

HasInductionSchema (Forall ta Nationality -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Nationality -> SBool) -> ProofObj Source #

SymVal extraT => HasInductionSchema (Forall ta Nationality -> Forall extraS extraT -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Nationality -> Forall extraS extraT -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2) => HasInductionSchema (Forall ta Nationality -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Nationality -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3) => HasInductionSchema (Forall ta Nationality -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Nationality -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3, SymVal extraT4) => HasInductionSchema (Forall ta Nationality -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Nationality -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3, SymVal extraT4, SymVal extraT5) => HasInductionSchema (Forall ta Nationality -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> Forall extraS5 extraT5 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Nationality -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> Forall extraS5 extraT5 -> SBool) -> ProofObj Source #

cv2Nationality :: String -> [CV] -> Nationality Source #

Conversion from SMT values to Nationality values.

_undefiner_Nationality :: a Source #

Autogenerated definition to avoid unused-variable warnings from GHC.

type SNationality = SBV Nationality Source #

Symbolic version of the type Nationality.

sBriton :: SBV Nationality Source #

Symbolic version of the constructor Briton.

sDane :: SBV Nationality Source #

Symbolic version of the constructor Dane.

sSwede :: SBV Nationality Source #

Symbolic version of the constructor Swede.

sNorwegian :: SBV Nationality Source #

Symbolic version of the constructor Norwegian.

sGerman :: SBV Nationality Source #

Symbolic version of the constructor German.

isBriton :: SBV Nationality -> SBool Source #

Field recognizer predicate.

isDane :: SBV Nationality -> SBool Source #

Field recognizer predicate.

isSwede :: SBV Nationality -> SBool Source #

Field recognizer predicate.

isNorwegian :: SBV Nationality -> SBool Source #

Field recognizer predicate.

isGerman :: SBV Nationality -> SBool Source #

Field recognizer predicate.

sCaseNationality :: Mergeable result => SBV Nationality -> result -> result -> result -> result -> result -> result Source #

Case analyzer for the type Nationality.

data Beverage Source #

Beverage choices

Constructors

Tea 
Coffee 
Milk 
Beer 
Water 

Instances

Instances details
Arbitrary Beverage Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

SymVal Beverage Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

HasKind Beverage Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

EnumSymbolic Beverage Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

SatModel Beverage Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

parseCVs :: [CV] -> Maybe (Beverage, [CV]) Source #

cvtModel :: (Beverage -> Maybe b) -> Maybe (Beverage, [CV]) -> Maybe (b, [CV]) Source #

OrdSymbolic (SBV Beverage) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

HasInductionSchema (Forall ta Beverage -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Beverage -> SBool) -> ProofObj Source #

SymVal extraT => HasInductionSchema (Forall ta Beverage -> Forall extraS extraT -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Beverage -> Forall extraS extraT -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2) => HasInductionSchema (Forall ta Beverage -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Beverage -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3) => HasInductionSchema (Forall ta Beverage -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Beverage -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3, SymVal extraT4) => HasInductionSchema (Forall ta Beverage -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Beverage -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3, SymVal extraT4, SymVal extraT5) => HasInductionSchema (Forall ta Beverage -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> Forall extraS5 extraT5 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Beverage -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> Forall extraS5 extraT5 -> SBool) -> ProofObj Source #

cv2Beverage :: String -> [CV] -> Beverage Source #

Conversion from SMT values to Beverage values.

_undefiner_Beverage :: a Source #

Autogenerated definition to avoid unused-variable warnings from GHC.

type SBeverage = SBV Beverage Source #

Symbolic version of the type Beverage.

sTea :: SBV Beverage Source #

Symbolic version of the constructor Tea.

sCoffee :: SBV Beverage Source #

Symbolic version of the constructor Coffee.

sMilk :: SBV Beverage Source #

Symbolic version of the constructor Milk.

sBeer :: SBV Beverage Source #

Symbolic version of the constructor Beer.

sWater :: SBV Beverage Source #

Symbolic version of the constructor Water.

isTea :: SBV Beverage -> SBool Source #

Field recognizer predicate.

isCoffee :: SBV Beverage -> SBool Source #

Field recognizer predicate.

isMilk :: SBV Beverage -> SBool Source #

Field recognizer predicate.

isBeer :: SBV Beverage -> SBool Source #

Field recognizer predicate.

isWater :: SBV Beverage -> SBool Source #

Field recognizer predicate.

sCaseBeverage :: Mergeable result => SBV Beverage -> result -> result -> result -> result -> result -> result Source #

Case analyzer for the type Beverage.

data Pet Source #

Pets they keep

Constructors

Dog 
Horse 
Cat 
Bird 
Fish 

Instances

Instances details
Arbitrary Pet Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

arbitrary :: Gen Pet #

shrink :: Pet -> [Pet] #

SymVal Pet Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

HasKind Pet Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

EnumSymbolic Pet Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

SatModel Pet Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

parseCVs :: [CV] -> Maybe (Pet, [CV]) Source #

cvtModel :: (Pet -> Maybe b) -> Maybe (Pet, [CV]) -> Maybe (b, [CV]) Source #

OrdSymbolic (SBV Pet) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

HasInductionSchema (Forall ta Pet -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Pet -> SBool) -> ProofObj Source #

SymVal extraT => HasInductionSchema (Forall ta Pet -> Forall extraS extraT -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Pet -> Forall extraS extraT -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2) => HasInductionSchema (Forall ta Pet -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Pet -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3) => HasInductionSchema (Forall ta Pet -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Pet -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3, SymVal extraT4) => HasInductionSchema (Forall ta Pet -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Pet -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3, SymVal extraT4, SymVal extraT5) => HasInductionSchema (Forall ta Pet -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> Forall extraS5 extraT5 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Pet -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> Forall extraS5 extraT5 -> SBool) -> ProofObj Source #

cv2Pet :: String -> [CV] -> Pet Source #

Conversion from SMT values to Pet values.

_undefiner_Pet :: a Source #

Autogenerated definition to avoid unused-variable warnings from GHC.

type SPet = SBV Pet Source #

Symbolic version of the type Pet.

sDog :: SBV Pet Source #

Symbolic version of the constructor Dog.

sHorse :: SBV Pet Source #

Symbolic version of the constructor Horse.

sCat :: SBV Pet Source #

Symbolic version of the constructor Cat.

sBird :: SBV Pet Source #

Symbolic version of the constructor Bird.

sFish :: SBV Pet Source #

Symbolic version of the constructor Fish.

isDog :: SBV Pet -> SBool Source #

Field recognizer predicate.

isHorse :: SBV Pet -> SBool Source #

Field recognizer predicate.

isCat :: SBV Pet -> SBool Source #

Field recognizer predicate.

isBird :: SBV Pet -> SBool Source #

Field recognizer predicate.

isFish :: SBV Pet -> SBool Source #

Field recognizer predicate.

sCasePet :: Mergeable result => SBV Pet -> result -> result -> result -> result -> result -> result Source #

Case analyzer for the type Pet.

data Sport Source #

Sports they engage in

Instances

Instances details
Arbitrary Sport Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

arbitrary :: Gen Sport #

shrink :: Sport -> [Sport] #

SymVal Sport Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

HasKind Sport Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

EnumSymbolic Sport Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

SatModel Sport Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

parseCVs :: [CV] -> Maybe (Sport, [CV]) Source #

cvtModel :: (Sport -> Maybe b) -> Maybe (Sport, [CV]) -> Maybe (b, [CV]) Source #

OrdSymbolic (SBV Sport) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

HasInductionSchema (Forall ta Sport -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Sport -> SBool) -> ProofObj Source #

SymVal extraT => HasInductionSchema (Forall ta Sport -> Forall extraS extraT -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Sport -> Forall extraS extraT -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2) => HasInductionSchema (Forall ta Sport -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Sport -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3) => HasInductionSchema (Forall ta Sport -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Sport -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3, SymVal extraT4) => HasInductionSchema (Forall ta Sport -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Sport -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> SBool) -> ProofObj Source #

(SymVal extraT1, SymVal extraT2, SymVal extraT3, SymVal extraT4, SymVal extraT5) => HasInductionSchema (Forall ta Sport -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> Forall extraS5 extraT5 -> SBool) Source # 
Instance details

Defined in Documentation.SBV.Examples.Puzzles.Fish

Methods

inductionSchema :: (Forall ta Sport -> Forall extraS1 extraT1 -> Forall extraS2 extraT2 -> Forall extraS3 extraT3 -> Forall extraS4 extraT4 -> Forall extraS5 extraT5 -> SBool) -> ProofObj Source #

cv2Sport :: String -> [CV] -> Sport Source #

Conversion from SMT values to Sport values.

_undefiner_Sport :: a Source #

Autogenerated definition to avoid unused-variable warnings from GHC.

type SSport = SBV Sport Source #

Symbolic version of the type Sport.

sFootball :: SBV Sport Source #

Symbolic version of the constructor Football.

sBaseball :: SBV Sport Source #

Symbolic version of the constructor Baseball.

sVolleyball :: SBV Sport Source #

Symbolic version of the constructor Volleyball.

sHockey :: SBV Sport Source #

Symbolic version of the constructor Hockey.

sTennis :: SBV Sport Source #

Symbolic version of the constructor Tennis.

isFootball :: SBV Sport -> SBool Source #

Field recognizer predicate.

isBaseball :: SBV Sport -> SBool Source #

Field recognizer predicate.

isVolleyball :: SBV Sport -> SBool Source #

Field recognizer predicate.

isHockey :: SBV Sport -> SBool Source #

Field recognizer predicate.

isTennis :: SBV Sport -> SBool Source #

Field recognizer predicate.

sCaseSport :: Mergeable result => SBV Sport -> result -> result -> result -> result -> result -> result Source #

Case analyzer for the type Sport.

fishOwner :: IO () Source #

We have:

>>> fishOwner
German

It's not hard to modify this program to grab the values of all the assignments, i.e., the full solution to the puzzle. We leave that as an exercise to the interested reader! NB. We use the allSatTrackUFs configuration to indicate that the uninterpreted function changes do not matter for generating different values. All we care is that the fishOwner changes!