for @{ 'leaf_ko $a $t }.
interpretation "leaf KO" 'leaf_ko a t = (cast _ _ (show a t)).
+(* already proved lemma *)
+definition Lemma : ∀A.A→A ≝ λA:CProp.λa:A.a.
+
+notation < "\infrule \nbsp p mstyle color #ff0000 (\lem\emsp H)" non associative with precedence 19
+for @{ 'lemma_ko_1 $p $H }.
+interpretation "lemma_ko_1" 'lemma_ko_1 p H =
+ (show p (cast _ _ (Lemma _ H))).
+
+notation < "\infrule \nbsp mstyle color #ff0000 (p) mstyle color #ff0000 (\lem\emsp H)" non associative with precedence 19
+for @{ 'lemma_ko_2 $p $H }.
+interpretation "lemma_ko_2" 'lemma_ko_2 p H =
+ (cast _ _ (show p (cast _ _ (Lemma _ H)))).
+
+notation < "\infrule \nbsp p (\lem\emsp H)" non associative with precedence 19
+for @{ 'lemma_ok_1 $p $H }.
+interpretation "lemma_ok_1" 'lemma_ok_1 p H =
+ (show p (Lemma _ H)).
+interpretation "lemma_ok_11" 'lemma_ok_1 p H =
+ (show p (Lemma _ H _)).
+interpretation "lemma_ok_111" 'lemma_ok_1 p H =
+ (show p (Lemma _ H _ _)).
+
+notation < "\infrule \nbsp mstyle color #ff0000 (p) (\lem\emsp H)" non associative with precedence 19
+for @{ 'lemma_ok_2 $p $H }.
+interpretation "lemma_ok_2" 'lemma_ok_2 p H =
+ (cast _ _ (show p (Lemma _ H))).
+interpretation "lemma_ok_22" 'lemma_ok_2 p H =
+ (cast _ _ (show p (Lemma _ H _))).
+interpretation "lemma_ok_22" 'lemma_ok_2 p H =
+ (cast _ _ (show p (Lemma _ H _ _))).
+
+notation > "'lem' term 90 p" non associative with precedence 19
+for @{ 'Lemma $p }.
+interpretation "lemma KO" 'Lemma p = (cast _ _ (Lemma _ p)).
+interpretation "lemma OK" 'Lemma p = (Lemma _ p).
+
+
(* discharging *)
notation < "[ a ] \sup mstyle color #ff0000 (H)" with precedence 19
for @{ 'discharge_ko_1 $a $H }.
(show ab (Or_intro_r _ _ a)).
notation < "\infrule hbox(\emsp a \emsp) mstyle color #ff0000 (ab) (∨\sub(\i_\r))" with precedence 19
-for @{ 'Or_intro_r_ok_1 $a $ab }.
+for @{ 'Or_intro_r_ok_2 $a $ab }.
interpretation "Or_intro_r_ok_2" 'Or_intro_r_ok_2 a ab =
(cast _ _ (show ab (Or_intro_r _ _ a))).
interpretation "Not_intro OK" 'Not_intro a = (Not_intro _ a).
(* ¬ elimination *)
-notation < "\infrule hbox(\emsp ab \emsp\emsp\emsp a\emsp) b mstyle color #ff0000 (\lnot\sub\e) " with precedence 19
+notation < "\infrule hbox(\emsp ab \emsp\emsp\emsp a\emsp) b mstyle color #ff0000 (\lnot\sub(\emsp\e)) " with precedence 19
for @{ 'Not_elim_ko_1 $ab $a $b }.
interpretation "Not_elim_ko_1" 'Not_elim_ko_1 ab a b =
(show b (cast _ _ (Not_elim _ (cast _ _ ab) (cast _ _ a)))).
-notation < "\infrule hbox(\emsp ab \emsp\emsp\emsp a\emsp) mstyle color #ff0000 (b) mstyle color #ff0000 (\lnot\sub\e) " with precedence 19
+notation < "\infrule hbox(\emsp ab \emsp\emsp\emsp a\emsp) mstyle color #ff0000 (b) mstyle color #ff0000 (\lnot\sub(\emsp\e)) " with precedence 19
for @{ 'Not_elim_ko_2 $ab $a $b }.
interpretation "Not_elim_ko_2" 'Not_elim_ko_2 ab a b =
(cast _ _ (show b (cast _ _ (Not_elim _ (cast _ _ ab) (cast _ _ a))))).
-notation < "\infrule hbox(\emsp ab \emsp\emsp\emsp a\emsp) b (\lnot\sub\e) " with precedence 19
+notation < "\infrule hbox(\emsp ab \emsp\emsp\emsp a\emsp) b (\lnot\sub(\emsp\e)) " with precedence 19
for @{ 'Not_elim_ok_1 $ab $a $b }.
interpretation "Not_elim_ok_1" 'Not_elim_ok_1 ab a b =
(show b (Not_elim _ ab a)).
-notation < "\infrule hbox(\emsp ab \emsp\emsp\emsp a\emsp) mstyle color #ff0000 (b) (\lnot\sub\e) " with precedence 19
+notation < "\infrule hbox(\emsp ab \emsp\emsp\emsp a\emsp) mstyle color #ff0000 (b) (\lnot\sub(\emsp\e)) " with precedence 19
for @{ 'Not_elim_ok_2 $ab $a $b }.
interpretation "Not_elim_ok_2" 'Not_elim_ok_2 ab a b =
(cast _ _ (show b (Not_elim _ ab a))).
<property name="response_id">0</property>
</widget>
</child>
+ <child>
+ <widget class="GtkButton" id="butUseLemma">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="label" translatable="yes">Use lemma (lem)</property>
+ <property name="response_id">0</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
<child>
<widget class="GtkButton" id="butDischarge">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="label" translatable="yes">Discharge (discharge [ ])</property>
+ <property name="label" translatable="yes">Discharge (discharge)</property>
<property name="response_id">0</property>
</widget>
<packing>
<property name="n_rows">3</property>
<property name="n_columns">2</property>
<property name="row_spacing">5</property>
- <child>
- <widget class="GtkLabel" id="label17">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Find:</property>
- </widget>
- <packing>
- <property name="x_options"></property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label18">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Replace with: </property>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options"></property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="findEntry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="invisible_char">*</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="replaceEntry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="invisible_char">*</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
<child>
<widget class="GtkHBox" id="hbox19">
<property name="visible">True</property>
<property name="y_padding">5</property>
</packing>
</child>
+ <child>
+ <widget class="GtkEntry" id="replaceEntry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">*</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="findEntry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="invisible_char">*</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label18">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Replace with: </property>
+ </widget>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options"></property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label17">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Find:</property>
+ </widget>
+ <packing>
+ <property name="x_options"></property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
</widget>
</child>
</widget>