]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/library/didactic/exercises/natural_deduction.ma
nasty change in the lexer/parser:
[helm.git] / helm / software / matita / library / didactic / exercises / natural_deduction.ma
index feac0296dd456259de8dd7246b3748032af6d364..47cb9e4ab2f74b5874ca15720908492528184e99 100644 (file)
@@ -79,7 +79,7 @@ L'albero si descrive partendo dalla radice. Le regole
 con premesse multiple sono seguite da `[`, `|` e `]`.
 Ad esempio: 
 
-        apply rule (∧_i (A∨B) ⊥);
+        apply rule (∧#i (A∨B) ⊥);
           [ …continua qui il sottoalbero per (A∨B)
           | …continua qui il sottoalbero per ⊥
           ] 
@@ -89,7 +89,7 @@ gli argomenti delle regole sono le formule che normalmente
 scrivete sopra la linea che rappresenta l'applicazione della
 regola stessa. Ad esempio:
 
-        aply rule (∨_e (A∨B) [h1] C [h2] C);
+        aply rule (∨#e (A∨B) [h1] C [h2] C);
           [ …prova di (A∨B)
           | …prova di C sotto l'ipotesi A (di nome h1)  
           | …prova di C sotto l'ipotesi B (di nome h2)
@@ -162,20 +162,20 @@ apply rule (prove (A ∨ ¬A));
 (* qui inizia l'albero, eseguite passo passo osservando come
    si modifica l'albero. *)
 apply rule (RAA [H] (⊥)).
-apply rule (¬_e (¬(A ∨ ¬A)) (A ∨ ¬A));
+apply rule (¬#e (¬(A ∨ ¬A)) (A ∨ ¬A));
        [ apply rule (discharge [H]).
-       | apply rule (⊥_e (⊥));
-         apply rule (¬_e (¬¬A) (¬A));
-          [ apply rule (¬_i [K] (⊥)).
-       apply rule (¬_e (¬(A ∨ ¬A)) (A ∨ ¬A));
+       | apply rule (⊥#e (⊥));
+         apply rule (¬#e (¬¬A) (¬A));
+          [ apply rule (¬#i [K] (⊥)).
+       apply rule (¬#e (¬(A ∨ ¬A)) (A ∨ ¬A));
              [ (*BEGIN*)apply rule (discharge [H]).(*END*)
-             | (*BEGIN*)apply rule (∨_i_r (¬A)).
+             | (*BEGIN*)apply rule (∨#i_r (¬A)).
           apply rule (discharge [K]).(*END*)
              ]
-          | (*BEGIN*)apply rule (¬_i [K] (⊥)).
-       apply rule (¬_e (¬(A ∨ ¬A)) (A ∨ ¬A));
+          | (*BEGIN*)apply rule (¬#i [K] (⊥)).
+       apply rule (¬#e (¬(A ∨ ¬A)) (A ∨ ¬A));
              [ apply rule (discharge [H]).
-             | apply rule (∨_i_l (A)).
+             | apply rule (∨#i_l (A)).
           apply rule (discharge [K]).
              ](*END*)
           ]
@@ -185,28 +185,28 @@ qed.
 theorem ex1 : (C∧G ⇒ E) ⇒ (¬L ⇒ E∨C) ⇒ G ∨ L ⇒ ¬L ⇒ E.
 apply rule (prove ((C∧G ⇒ E) ⇒ (¬L ⇒ E∨C) ⇒ G ∨ L ⇒ ¬L ⇒ E));
 (*BEGIN*)
-apply rule (⇒_i [h1] ((¬L ⇒ E∨C) ⇒ G ∨ L ⇒ ¬L ⇒ E));
-apply rule (⇒_i [h2] (G ∨ L ⇒ ¬L ⇒ E));
-apply rule (⇒_i [h3] (¬L ⇒ E));
-apply rule (⇒_i [h4] (E));
-apply rule (∨_e (G∨L) [h5] (E) [h6] (E));
+apply rule (⇒#i [h1] ((¬L ⇒ E∨C) ⇒ G ∨ L ⇒ ¬L ⇒ E));
+apply rule (⇒#i [h2] (G ∨ L ⇒ ¬L ⇒ E));
+apply rule (⇒#i [h3] (¬L ⇒ E));
+apply rule (⇒#i [h4] (E));
+apply rule (∨#e (G∨L) [h5] (E) [h6] (E));
        [ apply rule (discharge [h3]);
-       | apply rule (∨_e (E∨C) [h6] (E) [h7] (E));
-           [ apply rule (⇒_e (¬L ⇒ E∨C) (¬L));
+       | apply rule (∨#e (E∨C) [h6] (E) [h7] (E));
+           [ apply rule (⇒#e (¬L ⇒ E∨C) (¬L));
                [ apply rule (discharge [h2]);
                | apply rule (discharge [h4]);
                ]
            | apply rule (discharge [h6]);
-           | apply rule (⇒_e (C∧G ⇒ E) (C∧G));
+           | apply rule (⇒#e (C∧G ⇒ E) (C∧G));
                [ apply rule (discharge [h1]);
-               | apply rule (∧_i (C) (G));
+               | apply rule (∧#i (C) (G));
                    [ apply rule (discharge [h7]);
                    | apply rule (discharge [h5]);
                ]
                ]
            ]
-       | apply rule (⊥_e (⊥));
-         apply rule (¬_e (¬L) (L));
+       | apply rule (⊥#e (⊥));
+         apply rule (¬#e (¬L) (L));
            [ apply rule (discharge [h4]);
            | apply rule (discharge [h6]);
            ]
@@ -217,23 +217,23 @@ qed.
 theorem ex2 : (A∧¬B ⇒ C) ⇒ (B∧D ⇒ C) ⇒ (D ⇒ A) ⇒ D ⇒ C.
 apply rule (prove ((A∧¬B ⇒ C) ⇒ (B∧D ⇒ C) ⇒ (D ⇒ A) ⇒ D ⇒ C));
 (*BEGIN*)
-apply rule (⇒_i [h1] ((B∧D ⇒ C) ⇒ (D ⇒ A) ⇒ D ⇒ C));
-apply rule (⇒_i [h2] ((D ⇒ A) ⇒ D ⇒ C));
-apply rule (⇒_i [h3] (D ⇒ C));
-apply rule (⇒_i [h4] (C));
-apply rule (∨_e (B∨¬B) [h5] (C) [h6] (C));
+apply rule (⇒#i [h1] ((B∧D ⇒ C) ⇒ (D ⇒ A) ⇒ D ⇒ C));
+apply rule (⇒#i [h2] ((D ⇒ A) ⇒ D ⇒ C));
+apply rule (⇒#i [h3] (D ⇒ C));
+apply rule (⇒#i [h4] (C));
+apply rule (∨#e (B∨¬B) [h5] (C) [h6] (C));
        [ apply rule (lem 0 EM);
-       | apply rule (⇒_e (B∧D⇒C) (B∧D));
+       | apply rule (⇒#e (B∧D⇒C) (B∧D));
            [ apply rule (discharge [h2]);
-       | apply rule (∧_i (B) (D));
+       | apply rule (∧#i (B) (D));
                [ apply rule (discharge [h5]);
                | apply rule (discharge [h4]);
                ]
            ] 
-       | apply rule (⇒_e (A∧¬B⇒C) (A∧¬B));
+       | apply rule (⇒#e (A∧¬B⇒C) (A∧¬B));
            [ apply rule (discharge [h1]);
-           | apply rule (∧_i (A) (¬B));
-               [ apply rule (⇒_e (D⇒A) (D));
+           | apply rule (∧#i (A) (¬B));
+               [ apply rule (⇒#e (D⇒A) (D));
                    [ apply rule (discharge [h3]);
                    | apply rule (discharge [h4]);
                    ]
@@ -249,25 +249,25 @@ qed.
 theorem ex3: (F ⇒ G∨E) ⇒ (G ⇒ ¬L∨E) ⇒ (L⇒F) ⇒ L ⇒ E.
 apply rule (prove ((F ⇒ G∨E) ⇒ (G ⇒ ¬L∨E) ⇒ (L⇒F) ⇒ L ⇒ E));
 (*BEGIN*)
-apply rule (⇒_i [h1] ((G ⇒ ¬L∨E) ⇒ (L⇒F) ⇒ L ⇒ E));
-apply rule (⇒_i [h2] ((L⇒F) ⇒ L ⇒ E));
-apply rule (⇒_i [h3] (L ⇒ E));
-apply rule (⇒_i [h4] (E));
-apply rule (∨_e (G∨E) [h5] (E) [h6] (E));
-       [ apply rule (⇒_e (F ⇒ G∨E) (F));
+apply rule (⇒#i [h1] ((G ⇒ ¬L∨E) ⇒ (L⇒F) ⇒ L ⇒ E));
+apply rule (⇒#i [h2] ((L⇒F) ⇒ L ⇒ E));
+apply rule (⇒#i [h3] (L ⇒ E));
+apply rule (⇒#i [h4] (E));
+apply rule (∨#e (G∨E) [h5] (E) [h6] (E));
+       [ apply rule (⇒#e (F ⇒ G∨E) (F));
            [ apply rule (discharge [h1]);
-           | apply rule (⇒_e (L⇒F) (L));
+           | apply rule (⇒#e (L⇒F) (L));
                [ apply rule (discharge [h3]);
                | apply rule (discharge [h4]);
                ]
            ]
-       |apply rule (∨_e (¬L∨E) [h7] (E) [h8] (E));
-           [ apply rule (⇒_e (G⇒¬L∨E) (G));
+       |apply rule (∨#e (¬L∨E) [h7] (E) [h8] (E));
+           [ apply rule (⇒#e (G⇒¬L∨E) (G));
                [ apply rule (discharge [h2]);
                | apply rule (discharge [h5]);
                ]
-           | apply rule (⊥_e (⊥));
-        apply rule (¬_e (¬L) (L));
+           | apply rule (⊥#e (⊥));
+        apply rule (¬#e (¬L) (L));
                [ apply rule (discharge [h7]);
                | apply rule (discharge [h4]);
                ]
@@ -281,23 +281,23 @@ qed.
 theorem ex4: ¬(A∧B) ⇒ ¬A∨¬B.
 apply rule (prove (¬(A∧B) ⇒ ¬A∨¬B));
 (*BEGIN*)
-apply rule (⇒_i [h1] (¬A∨¬B));
-apply rule (∨_e (A ∨ ¬A) [h2] ((¬A∨¬B)) [h3] ((¬A∨¬B)));
+apply rule (⇒#i [h1] (¬A∨¬B));
+apply rule (∨#e (A ∨ ¬A) [h2] ((¬A∨¬B)) [h3] ((¬A∨¬B)));
        [ apply rule (lem 0 EM);
-       | apply rule (∨_e (B ∨ ¬B) [h4] ((¬A∨¬B)) [h5] ((¬A∨¬B)));
+       | apply rule (∨#e (B ∨ ¬B) [h4] ((¬A∨¬B)) [h5] ((¬A∨¬B)));
            [ apply rule (lem 0 EM);
-           | apply rule (⊥_e (⊥));
-             apply rule (¬_e (¬(A∧B)) (A∧B));
+           | apply rule (⊥#e (⊥));
+             apply rule (¬#e (¬(A∧B)) (A∧B));
                [ apply rule (discharge [h1]);
-               | apply rule (∧_i (A) (B));
+               | apply rule (∧#i (A) (B));
                    [ apply rule (discharge [h2]);
                    | apply rule (discharge [h4]);
                    ]
                ]
-           | apply rule (∨_i_r (¬B));
+           | apply rule (∨#i_r (¬B));
         apply rule (discharge [h5]);
            ]
-       | apply rule (∨_i_l (¬A));
+       | apply rule (∨#i_l (¬A));
     apply rule (discharge [h3]);
        ]
 (*END*)
@@ -306,24 +306,24 @@ qed.
 theorem ex5: ¬(A∨B) ⇒ (¬A ∧ ¬B).
 apply rule (prove (¬(A∨B) ⇒ (¬A ∧ ¬B)));
 (*BEGIN*)
-apply rule (⇒_i [h1] (¬A ∧ ¬B));
-apply rule (∨_e (A∨¬A) [h2] (¬A ∧ ¬B) [h3] (¬A ∧ ¬B));
+apply rule (⇒#i [h1] (¬A ∧ ¬B));
+apply rule (∨#e (A∨¬A) [h2] (¬A ∧ ¬B) [h3] (¬A ∧ ¬B));
        [ apply rule (lem 0 EM);
-       | apply rule (⊥_e (⊥));
-    apply rule (¬_e (¬(A∨B)) (A∨B));
+       | apply rule (⊥#e (⊥));
+    apply rule (¬#e (¬(A∨B)) (A∨B));
            [ apply rule (discharge [h1]);
-           | apply rule (∨_i_l (A));
+           | apply rule (∨#i_l (A));
         apply rule (discharge [h2]);
            ]
-       | apply rule (∨_e (B∨¬B) [h10] (¬A ∧ ¬B) [h11] (¬A ∧ ¬B));
+       | apply rule (∨#e (B∨¬B) [h10] (¬A ∧ ¬B) [h11] (¬A ∧ ¬B));
            [ apply rule (lem 0 EM);
-           | apply rule (⊥_e (⊥));
-        apply rule (¬_e (¬(A∨B)) (A∨B));
+           | apply rule (⊥#e (⊥));
+        apply rule (¬#e (¬(A∨B)) (A∨B));
                [ apply rule (discharge [h1]);
-               | apply rule (∨_i_r (B));
+               | apply rule (∨#i_r (B));
             apply rule (discharge [h10]);
                ] 
-           | apply rule (∧_i (¬A) (¬B));
+           | apply rule (∧#i (¬A) (¬B));
                [ apply rule (discharge [h3]);
                |apply rule (discharge [h11]);
                ]
@@ -335,17 +335,17 @@ qed.
 theorem ex6: ¬A ∧ ¬B ⇒ ¬(A∨B).
 apply rule (prove (¬A ∧ ¬B ⇒ ¬(A∨B)));
 (*BEGIN*)
-apply rule (⇒_i [h1] (¬(A∨B)));
-apply rule (¬_i [h2] (⊥));
-apply rule (∨_e (A∨B) [h3] (⊥) [h3] (⊥));
+apply rule (⇒#i [h1] (¬(A∨B)));
+apply rule (¬#i [h2] (⊥));
+apply rule (∨#e (A∨B) [h3] (⊥) [h3] (⊥));
        [ apply rule (discharge [h2]);
-       | apply rule (¬_e (¬A) (A));
-           [ apply rule (∧_e_l (¬A∧¬B));
+       | apply rule (¬#e (¬A) (A));
+           [ apply rule (∧#e_l (¬A∧¬B));
         apply rule (discharge [h1]);
            | apply rule (discharge [h3]);
            ]
-       | apply rule (¬_e (¬B) (B));
-           [ apply rule (∧_e_r (¬A∧¬B));
+       | apply rule (¬#e (¬B) (B));
+           [ apply rule (∧#e_r (¬A∧¬B));
         apply rule (discharge [h1]);
            | apply rule (discharge [h3]);
            ]
@@ -356,12 +356,12 @@ qed.
 theorem ex7: ((A ⇒ ⊥) ⇒ ⊥) ⇒ A.
 apply rule (prove (((A ⇒ ⊥) ⇒ ⊥) ⇒ A));
 (*BEGIN*)
-apply rule (⇒_i [h1] (A));
+apply rule (⇒#i [h1] (A));
 apply rule (RAA [h2] (⊥));
-apply rule (⇒_e ((A⇒⊥)⇒⊥) (A⇒⊥));
+apply rule (⇒#e ((A⇒⊥)⇒⊥) (A⇒⊥));
        [ apply rule (discharge [h1]);
-       | apply rule (⇒_i [h3] (⊥));
-         apply rule (¬_e (¬A) (A));
+       | apply rule (⇒#i [h3] (⊥));
+         apply rule (¬#e (¬A) (A));
            [ apply rule (discharge [h2]);
            | apply rule (discharge [h3]);
            ]