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:
  1. - Sandt hvis passer på det svar som er angivet.
  2. - Sandt hvis svaret indeholder . (Helt præcist: hvis , så indeholder strengen , , hvis der findes et , , , )
  3. - Sandt hvis kommer før , og kommer før , osv.
  4. - Sandt hvis er falsk.
  5. - Sandt hvis er sandt for alle .
  6. - Sandt hvis er sandt for mindst ét .
  7. - 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

  1. 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
  2. Hvis man skal vælge 3 svar, og man vil tjekke om brugeren har valgt mulighed 4 som svar #2, kan man skrive
  3. Hvis man skal vælge 3 svar, så kan også skrives som
  4. er en tautologi.