Scaricate il file exercise-settheory.ma (usando il pulsante destro sul link e selezionando Save link as' o qualcosa di simile). Poi aprite il file salvato lanciando un terminale e lanciando il comando ~sacerdot/matita_gtk3/helm/matita/matita/matita.opt exercise-set_theory.ma dalla directory in cui l'avete salvato.
Per prima cosa all'inizio del file riempite i campi con i vostri nomi, cognomi e numero di matricole.
Durante la prova ricordatevi di salvare costantemente per non perdere il lavoro in caso di crash. Matita fa dei salvataggi automatici, ma non fidatevi.
Alla fine dell'esercitazione o del tempo consegnate il file con il comando `~sacerdot/logica1920/ConsegnaLogica exercise-set_theory.ma'.
Per inserire i simboli matematici è necessario digitare il loro nome
e poi premere ALT-L. In generale i nomi dei simboli sono della forma
\nome, ad esempio \equiv. Alcuni simboli molto frequenti hanno
dei sinonimi più comodi da digitare, per esemio ⇒ ha sia il nome
\Rightarrow sia =>.
Segue un elenco dei simboli più comuni e i loro nomi separati da virgola,
Se sono necessari dei simboli non riportati di seguito si può visualizzare
l'intera lista dal menù a tendina View ▹ TeX/UTF8 table.
∨ : \or∧ : \and¬ : \lnot→ : \to, ->⇔ : \iff∀ : \forall∈ : \in∪ : \cup∩ : \cap∅ : \empty⊆ : \subeΔ : \deltaLa sintassi ∀x.P significa "per tutti gli x vale P".
La sintassi F → G dove F e G sono proposizioni nel metalinguaggio
significa "F implica G". Attenzione, il simbolo ⇒ (usato a lezione)
non ha lo stesso significato in Matita.
La sintassi ℕ → ℕ è il tipo delle funzioni che preso un numero naturale
restituiscono un numero naturale.
Tutti gli operatori sono associativi a sinistra, tranne `→'.
Gli esercizi di questa lezione richiedono di scrivere una dimostrazione. Tale dimostrazionedeve essere scritta utilizzando il linguaggio di dimostrazione di Matita. Tale linguaggio è composto dai seguenti comandi:
assume nome : tipo
Quando si deve dimostrare un tesi come ∀F : Formula.P, il comando
assume F : Formula fissa una generica Formula F e la tesi
diventa P dove F è fissata.
suppose P (nome)
Quando si deve dimostrare una tesi come P → Q, il comando
suppose P (Ipotesi1) da il nome Ipotesi1 a P e cambia la tesi
Q, che ora può essere dimostrata facendo riferimento all'assunzione
P tramite il nome Ipotesi1.
we procede by cases on x to prove Q
Si usa quando si vuole usare una disgiunzione per dimostrare una proposizione Q.
x deve essere il nome di una disgiunzione nelle ipotesi del goal corrente.
case name
Nelle prove per induzione o per casi, ogni caso deve iniziare con il
comando case nome, ad esempio se si procede per casi su una disgiunzione
si dovrà analizzare prima il caso in cui sia vera la sottoformula sinistra e
poi il caso in cui sia vera la formula di destra; in entrambi i casi la
sottodimostrazione comincierà con case nome. dove nome serve come
chiarimento all'utente.
by name1,name2,... we proved P (name)
Permette di ottenere una nuova ipotesi P chiamandola name utilizzando
le ipotesi name1,name2... bisogna prestare attenzione a elencare tutte le ipotesi
necessarie (assiomi, ipotesi, regole dei connettivi, eventuali teoremi).
by name1,name2,... done
Termina un caso della dimostrazione se quello che dobbiamo dimostrare è una banale conseguenza delle ipotesi name1,name2,...
by name we have F1 (name1) and F2 (name2)
Quando name è una ipotesi del tipo F1 ∧ F2, si ottengono due nuove ipotesi chiamate name1 e name2 di tipo rispettivamente F1 e F2.
we need to prove F (name)
Inizia una sotto-dimostrazione di F. Una volta conclusa, si riprende la dimostrazione precedente con in più l'ipotesi name che F valga.
using (ABSURDUM name) done
Conclude la dimostrazione quando name è l'ipotesi che False valga
Per concludere le dimostrazioni potete utilizzare i seguenti assiomi e teoremi
Assiomi:
Teoremi dimostrati nel laboratorio 1:
Teoremi dimostrati (o da dimostrare) nel corso di questo laboratorio: