1 Case-sproget
1.1 Case-sproget
I
bruges et simpelt programmeringssprog, som vi vil kalde Case-sproget. Sproget består af
S-expressions, hvor hvert udtryk enten er et prædikat eller en sammensætning af prædikater (konjunktion, disjunktion, negation eller eksklusiv disjunktion.)
1.1.1 Atomer
Atomerne i vores sprog er tekststrenge som indeholder brugerens svar. Lad
være mængden af mulige svar, for eksempel
, svarende til at man har angivet rækkefølgen: Svar 1, Svar 2, Svar 3. Man skal altså tænke på
som en tekststreng. I et svar vil
(wildcard) betyde et vilkårligt svar, for eksempel hvis man er interesseret i 3 svar, og man kun vil tjekke om det første svar er 1 og det sidste er 3, kan man skrive
.
Vi betegner
som de svar hvor man ikke kan benytte wildcard.
1.1.2 Prædikater
Mængden
af prædikater, er da udtryk på formen:
- - Sandt hvis passer på det svar som er angivet.
- - Sandt hvis svaret indeholder . (Helt præcist: hvis , så indeholder strengen , , hvis der findes et så , , , )
- - Sandt hvis kommer før , og kommer før , osv.
- - Sandt hvis er falsk.
- - Sandt hvis er sandt for alle .
- - Sandt hvis er sandt for mindst ét .
- - Sandt hvis og har forskellige sandhedsværdier.
1.1.3 Sproget
Vi kan nu definere Case-sproget som mængden af prædikater, således at
i
1.1.4 Finurlige eksempler
- Hvis man vil tjekke om svar #1 kommer før svar #3, men man er ligeglad med hvad der ligger i mellem, så kan man skrive
- Hvis man skal vælge 3 svar, og man vil tjekke om brugeren har valgt mulighed 4 som svar #2, kan man skrive
- Hvis man skal vælge 3 svar, så kan også skrives som
- er en tautologi.