BuK/IIm19/Übung 1 Schuster

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SchemeJS</language>
== Aussagenlogischer Interpreter ==

<code id="5e6b576172c27">; Schreibe einen Interpreter für aussagenlogische Terme
; Folgende Operationen sollen unterstützt werden:
;  - ¬
;  - ∧
;  - ∨
;  - →
;  - ↔

(define ¬
  (lambda (t)
    (not t)))

(define ∧
  (lambda (t1 t2)
    (and t1 t2)))

(define ∨
  (lambda (t1 t2)
    (or t1 t2)))

(define →
  (lambda (t1 t2)
    (if (and t1 (not t2))
      #f
      #t)))

(define ↔
  (lambda (t1 t2)
    (not (equals? t1 t2))))</code>

<run id="5e6b576172cbf">(</run>

[https://flaci.com/Thjwh7152 FLACI]

== Wahrheitstafeln für indirekten Beweis ==

Vorlesung 1 Folie 22

{| border = "1px" cellspacing = "0"
!A
!B
!¬A
!¬B
!¬B → ¬A
!A → B
|-
|#w
|#w
|#f
|#f
|#w
|#w
|-
|#w
|#f
|#f
|#w
|#f
|#f
|-
|#f
|#w
|#w
|#f
|#w
|#w
|-
|#f
|#f
|#w
|#w
|#w
|#w
|-
|}

== Partielle Funktion: Beispiel ==

Vorlesung 1 Folie 39

<code id="5e6b994410222">(define q
  (lambda (x)
    (if (eq? x 3)
      (q x)
      (/ 35 (- x 3)))))</code>

<run id="5e6b9944102b9">(q 42)
;(q 3)</run>