Het probleem:
Het vinden van alle modellen voor een opgebouwde Propositie boom binnen de functionele taal Haskell
Domein:
De definitie van een propositie:
Een propositie kan dus alleen opgebouwd worden uit conjuncties ( En ), disjuncties ( Of ), negaties (Niet), implicaties (:->), variabelen (Var) en contantes (Bool)
Hier is niets aan te veranderen.
Een propositie kan dus dingen zijn als
Probleem:
Ik wil alle modellen hebben van deze expressie hebben. Een model zijn de waardes voor de variabelen zo, dat de expressie 'True' als waarde geeft
Overwogen:
• Brute force alle mogelijke waardes van de variabeles proberen. Dit werkt 100% zeker, maar is bloed traag
• Semantisch Tablaux loslaten op de expressie en door tegenstellingen ( a == fale en a == true in een tree) alle modellen te vinden. Dit wordt alleen ontzettend gecompileerd. Ik heb dan ook geen flauw idee hoe het te implementeren.
Kortom heeft iemand hier een idee voor om alle modellen van de expressie te vinden, of tips voor implementaties van het Tablaux? Verder ben ik ook nog aan het onderzoeken van Sequenten Calcus, dat schijnt makkelijk door machines gedaan te kunnen worden
Ik hoop dat iemand hier iets over kwijt wil
Danku
Het vinden van alle modellen voor een opgebouwde Propositie boom binnen de functionele taal Haskell
Domein:
De definitie van een propositie:
Haskell:
1
2
3
4
5
6
7
| data Prop = En [Prop] | Of [Prop] | Niet Prop | Prop :-> Prop -- (implicatie) | Var String -- variabele | Bool Bool -- constanten |
Een propositie kan dus alleen opgebouwd worden uit conjuncties ( En ), disjuncties ( Of ), negaties (Niet), implicaties (:->), variabelen (Var) en contantes (Bool)
Hier is niets aan te veranderen.
Een propositie kan dus dingen zijn als
Haskell:
1
| En( Var "a", Of( Niet (Var "b), Bool( True) ) ) |
Probleem:
Ik wil alle modellen hebben van deze expressie hebben. Een model zijn de waardes voor de variabelen zo, dat de expressie 'True' als waarde geeft
Overwogen:
• Brute force alle mogelijke waardes van de variabeles proberen. Dit werkt 100% zeker, maar is bloed traag
• Semantisch Tablaux loslaten op de expressie en door tegenstellingen ( a == fale en a == true in een tree) alle modellen te vinden. Dit wordt alleen ontzettend gecompileerd. Ik heb dan ook geen flauw idee hoe het te implementeren.
Kortom heeft iemand hier een idee voor om alle modellen van de expressie te vinden, of tips voor implementaties van het Tablaux? Verder ben ik ook nog aan het onderzoeken van Sequenten Calcus, dat schijnt makkelijk door machines gedaan te kunnen worden
Ik hoop dat iemand hier iets over kwijt wil