TPTP Problem File: SLH0311^1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : SLH0000^1 : TPTP v8.2.0. Released v8.2.0.
% Domain : Archive of Formal Proofs
% Problem :
% Version : Especial.
% English :
% Refs : [Des23] Desharnais (2023), Email to Geoff Sutcliffe
% Source : [Des23]
% Names : Separation_Logic_Unbounded/0000_UnboundedLogic/prob_00184_005789__6490184_1 [Des23]
% Status : Theorem
% Rating : ? v8.2.0
% Syntax : Number of formulae : 512 ( 195 unt; 180 typ; 0 def)
% Number of atoms : 924 ( 476 equ; 0 cnn)
% Maximal formula atoms : 11 ( 2 avg)
% Number of connectives : 2836 ( 92 ~; 10 |; 50 &;2422 @)
% ( 0 <=>; 262 =>; 0 <=; 0 <~>)
% Maximal formula depth : 21 ( 6 avg)
% Number of types : 12 ( 11 usr)
% Number of type conns : 1763 (1763 >; 0 *; 0 +; 0 <<)
% Number of symbols : 172 ( 169 usr; 15 con; 0-7 aty)
% Number of variables : 1096 ( 138 ^; 942 !; 16 ?;1096 :)
% SPC : TH0_THM_EQU_NAR
% Comments : This file was generated by Isabelle (most likely Sledgehammer)
% 2023-01-19 15:58:49.005
%------------------------------------------------------------------------------
% Could-be-implicit typings (11)
thf(ty_n_t__Product____Type__Oprod_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J,type,
produc3509355604313844263tion_a: $tType ).
thf(ty_n_t__Set__Oset_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_J,type,
set_option_option_a: $tType ).
thf(ty_n_t__Option__Ooption_It__Option__Ooption_Itf__a_J_J,type,
option_option_a: $tType ).
thf(ty_n_t__Set__Oset_It__Option__Ooption_Itf__a_J_J,type,
set_option_a: $tType ).
thf(ty_n_t__Set__Oset_It__Set__Oset_Itf__a_J_J,type,
set_set_a: $tType ).
thf(ty_n_t__Option__Ooption_Itf__a_J,type,
option_a: $tType ).
thf(ty_n_t__Option__Ooption_I_Eo_J,type,
option_o: $tType ).
thf(ty_n_t__Set__Oset_Itf__a_J,type,
set_a: $tType ).
thf(ty_n_t__Nat__Onat,type,
nat: $tType ).
thf(ty_n_tf__b,type,
b: $tType ).
thf(ty_n_tf__a,type,
a: $tType ).
% Explicit typings (169)
thf(sy_c_BNF__Def_Oeq__onp_001t__Option__Ooption_Itf__a_J,type,
bNF_eq_onp_option_a: ( option_a > $o ) > option_a > option_a > $o ).
thf(sy_c_BNF__Def_Oeq__onp_001tf__a,type,
bNF_eq_onp_a: ( a > $o ) > a > a > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J_001_062_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_M_Eo_J_001_062_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_M_Eo_J,type,
bNF_re8007680959799151545on_a_o: ( ( option_a > $o ) > ( option_a > $o ) > $o ) > ( ( option_option_a > $o ) > ( option_option_a > $o ) > $o ) > ( ( option_a > $o ) > option_option_a > $o ) > ( ( option_a > $o ) > option_option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J_001_062_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_Mt__Option__Ooption_I_Eo_J_J_001_062_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_Mt__Option__Ooption_I_Eo_J_J,type,
bNF_re5724521104517466949tion_o: ( ( option_a > $o ) > ( option_a > $o ) > $o ) > ( ( option_option_a > option_o ) > ( option_option_a > option_o ) > $o ) > ( ( option_a > $o ) > option_option_a > option_o ) > ( ( option_a > $o ) > option_option_a > option_o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_M_062_It__Option__Ooption_Itf__a_J_M_Eo_J_J_001_062_Itf__a_M_062_It__Option__Ooption_Itf__a_J_M_Eo_J_J_001_062_It__Option__Ooption_Itf__a_J_M_062_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_M_Eo_J_J_001_062_It__Option__Ooption_Itf__a_J_M_062_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_M_Eo_J_J,type,
bNF_re3412046433515172957on_a_o: ( ( a > option_a > $o ) > ( a > option_a > $o ) > $o ) > ( ( option_a > option_option_a > $o ) > ( option_a > option_option_a > $o ) > $o ) > ( ( a > option_a > $o ) > option_a > option_option_a > $o ) > ( ( a > option_a > $o ) > option_a > option_option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_M_062_Itf__a_M_Eo_J_J_001_062_Itf__a_M_062_Itf__a_M_Eo_J_J_001_062_It__Option__Ooption_Itf__a_J_M_062_It__Option__Ooption_Itf__a_J_M_Eo_J_J_001_062_It__Option__Ooption_Itf__a_J_M_062_It__Option__Ooption_Itf__a_J_M_Eo_J_J,type,
bNF_re4921454823102592605on_a_o: ( ( a > a > $o ) > ( a > a > $o ) > $o ) > ( ( option_a > option_a > $o ) > ( option_a > option_a > $o ) > $o ) > ( ( a > a > $o ) > option_a > option_a > $o ) > ( ( a > a > $o ) > option_a > option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_M_Eo_J_001_062_Itf__a_M_Eo_J_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J,type,
bNF_re4859868158825367505on_a_o: ( ( a > $o ) > ( a > $o ) > $o ) > ( ( option_a > $o ) > ( option_a > $o ) > $o ) > ( ( a > $o ) > option_a > $o ) > ( ( a > $o ) > option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_M_Eo_J_001_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J_001_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J,type,
bNF_re2369685550566307625tion_a: ( ( a > $o ) > ( a > option_a ) > $o ) > ( ( option_a > $o ) > ( option_a > option_a ) > $o ) > ( ( a > $o ) > option_a > $o ) > ( ( a > option_a ) > option_a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_M_Eo_J_001_062_Itf__a_Mtf__a_J_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J_001_062_It__Option__Ooption_Itf__a_J_Mtf__a_J,type,
bNF_re102678143051736477on_a_a: ( ( a > $o ) > ( a > a ) > $o ) > ( ( option_a > $o ) > ( option_a > a ) > $o ) > ( ( a > $o ) > option_a > $o ) > ( ( a > a ) > option_a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_001_062_Itf__a_M_Eo_J_001_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J,type,
bNF_re6058157240589548841on_a_o: ( ( a > option_a ) > ( a > $o ) > $o ) > ( ( option_a > option_a ) > ( option_a > $o ) > $o ) > ( ( a > option_a ) > option_a > option_a ) > ( ( a > $o ) > option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_001_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_001_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_It__Option__Ooption_Itf__a_J_J_J_001_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_It__Option__Ooption_Itf__a_J_J_J,type,
bNF_re2496629990708770829tion_a: ( ( a > option_a ) > ( a > option_a ) > $o ) > ( ( option_a > option_option_a ) > ( option_a > option_option_a ) > $o ) > ( ( a > option_a ) > option_a > option_option_a ) > ( ( a > option_a ) > option_a > option_option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_001_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_001_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J_001_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J,type,
bNF_re2722752998287985793tion_a: ( ( a > option_a ) > ( a > option_a ) > $o ) > ( ( option_a > option_a ) > ( option_a > option_a ) > $o ) > ( ( a > option_a ) > option_a > option_a ) > ( ( a > option_a ) > option_a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_001_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J,type,
bNF_re5527783635739595829tion_a: ( ( a > option_a ) > ( a > option_a ) > $o ) > ( option_a > option_a > $o ) > ( ( a > option_a ) > option_a ) > ( ( a > option_a ) > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_001_062_Itf__a_Mtf__a_J_001_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J_001_062_It__Option__Ooption_Itf__a_J_Mtf__a_J,type,
bNF_re5072729714030605557on_a_a: ( ( a > option_a ) > ( a > a ) > $o ) > ( ( option_a > option_a ) > ( option_a > a ) > $o ) > ( ( a > option_a ) > option_a > option_a ) > ( ( a > a ) > option_a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_Mtf__a_J_001_062_Itf__a_M_Eo_J_001_062_It__Option__Ooption_Itf__a_J_Mtf__a_J_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J,type,
bNF_re4058884933032857501on_a_o: ( ( a > a ) > ( a > $o ) > $o ) > ( ( option_a > a ) > ( option_a > $o ) > $o ) > ( ( a > a ) > option_a > a ) > ( ( a > $o ) > option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_Mtf__a_J_001_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_001_062_It__Option__Ooption_Itf__a_J_Mtf__a_J_001_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J,type,
bNF_re7263069294043397365tion_a: ( ( a > a ) > ( a > option_a ) > $o ) > ( ( option_a > a ) > ( option_a > option_a ) > $o ) > ( ( a > a ) > option_a > a ) > ( ( a > option_a ) > option_a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_Mtf__a_J_001_062_Itf__a_Mtf__a_J_001_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J_001_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J,type,
bNF_re8471833820502647285tion_a: ( ( a > a ) > ( a > a ) > $o ) > ( ( option_a > option_a ) > ( option_a > option_a ) > $o ) > ( ( a > a ) > option_a > option_a ) > ( ( a > a ) > option_a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_062_Itf__a_Mtf__a_J_001_062_Itf__a_Mtf__a_J_001_062_It__Option__Ooption_Itf__a_J_Mtf__a_J_001_062_It__Option__Ooption_Itf__a_J_Mtf__a_J,type,
bNF_re1079736789768479081on_a_a: ( ( a > a ) > ( a > a ) > $o ) > ( ( option_a > a ) > ( option_a > a ) > $o ) > ( ( a > a ) > option_a > a ) > ( ( a > a ) > option_a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_Eo_001_Eo_001_062_I_062_It__Option__Ooption_Itf__a_J_M_Eo_J_M_062_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_M_Eo_J_J_001_062_I_062_It__Option__Ooption_Itf__a_J_M_Eo_J_M_062_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_M_Eo_J_J,type,
bNF_re7775980886671535221on_a_o: ( $o > $o > $o ) > ( ( ( option_a > $o ) > option_option_a > $o ) > ( ( option_a > $o ) > option_option_a > $o ) > $o ) > ( $o > ( option_a > $o ) > option_option_a > $o ) > ( $o > ( option_a > $o ) > option_option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_Eo_001_Eo_001_062_I_062_Itf__a_M_Eo_J_M_062_It__Option__Ooption_Itf__a_J_M_Eo_J_J_001_062_I_062_Itf__a_M_Eo_J_M_062_It__Option__Ooption_Itf__a_J_M_Eo_J_J,type,
bNF_re1464701735350397069on_a_o: ( $o > $o > $o ) > ( ( ( a > $o ) > option_a > $o ) > ( ( a > $o ) > option_a > $o ) > $o ) > ( $o > ( a > $o ) > option_a > $o ) > ( $o > ( a > $o ) > option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_Eo_001t__Option__Ooption_Itf__a_J_001_062_I_062_Itf__a_M_Eo_J_M_062_It__Option__Ooption_Itf__a_J_M_Eo_J_J_001_062_I_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_M_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J_J,type,
bNF_re7078363273947182481tion_a: ( $o > option_a > $o ) > ( ( ( a > $o ) > option_a > $o ) > ( ( a > option_a ) > option_a > option_a ) > $o ) > ( $o > ( a > $o ) > option_a > $o ) > ( option_a > ( a > option_a ) > option_a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001_Eo_001tf__a_001_062_I_062_Itf__a_M_Eo_J_M_062_It__Option__Ooption_Itf__a_J_M_Eo_J_J_001_062_I_062_Itf__a_Mtf__a_J_M_062_It__Option__Ooption_Itf__a_J_Mtf__a_J_J,type,
bNF_re4337018088969878591on_a_a: ( $o > a > $o ) > ( ( ( a > $o ) > option_a > $o ) > ( ( a > a ) > option_a > a ) > $o ) > ( $o > ( a > $o ) > option_a > $o ) > ( a > ( a > a ) > option_a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J_001_Eo_001_Eo,type,
bNF_re669219658517073757_a_o_o: ( option_option_a > option_option_a > $o ) > ( $o > $o > $o ) > ( option_option_a > $o ) > ( option_option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J_001t__Option__Ooption_I_Eo_J_001t__Option__Ooption_I_Eo_J,type,
bNF_re7165334401771760221tion_o: ( option_option_a > option_option_a > $o ) > ( option_o > option_o > $o ) > ( option_option_a > option_o ) > ( option_option_a > option_o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001_Eo_001_062_I_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_M_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J_J_001_062_I_062_Itf__a_M_Eo_J_M_062_It__Option__Ooption_Itf__a_J_M_Eo_J_J,type,
bNF_re4311958519388381497on_a_o: ( option_a > $o > $o ) > ( ( ( a > option_a ) > option_a > option_a ) > ( ( a > $o ) > option_a > $o ) > $o ) > ( option_a > ( a > option_a ) > option_a > option_a ) > ( $o > ( a > $o ) > option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001_062_I_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_M_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J_J_001_062_I_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_M_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J_J,type,
bNF_re1266155380144051773tion_a: ( option_a > option_a > $o ) > ( ( ( a > option_a ) > option_a > option_a ) > ( ( a > option_a ) > option_a > option_a ) > $o ) > ( option_a > ( a > option_a ) > option_a > option_a ) > ( option_a > ( a > option_a ) > option_a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001_062_I_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_Mt__Option__Ooption_Itf__a_J_J_001_062_I_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_Mt__Option__Ooption_Itf__a_J_J,type,
bNF_re5708320262762544989tion_a: ( option_a > option_a > $o ) > ( ( ( a > option_a ) > option_a ) > ( ( a > option_a ) > option_a ) > $o ) > ( option_a > ( a > option_a ) > option_a ) > ( option_a > ( a > option_a ) > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001_062_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_M_Eo_J_001_062_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_M_Eo_J,type,
bNF_re3043890739735069381on_a_o: ( option_a > option_a > $o ) > ( ( option_option_a > $o ) > ( option_option_a > $o ) > $o ) > ( option_a > option_option_a > $o ) > ( option_a > option_option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J,type,
bNF_re1541143192665202257on_a_o: ( option_a > option_a > $o ) > ( ( option_a > $o ) > ( option_a > $o ) > $o ) > ( option_a > option_a > $o ) > ( option_a > option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001_Eo_001_Eo,type,
bNF_re905040088260304477_a_o_o: ( option_a > option_a > $o ) > ( $o > $o > $o ) > ( option_a > $o ) > ( option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001_Eo_001t__Option__Ooption_Itf__a_J,type,
bNF_re1129020316103814665tion_a: ( option_a > option_a > $o ) > ( $o > option_a > $o ) > ( option_a > $o ) > ( option_a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001_Eo_001tf__a,type,
bNF_re8815814597387604803_a_o_a: ( option_a > option_a > $o ) > ( $o > a > $o ) > ( option_a > $o ) > ( option_a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J,type,
bNF_re1595600300046643805tion_a: ( option_a > option_a > $o ) > ( option_option_a > option_option_a > $o ) > ( option_a > option_option_a ) > ( option_a > option_option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001_Eo,type,
bNF_re2070578767941953969on_a_o: ( option_a > option_a > $o ) > ( option_a > $o > $o ) > ( option_a > option_a ) > ( option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J,type,
bNF_re8713957294334624093tion_a: ( option_a > option_a > $o ) > ( option_a > option_a > $o ) > ( option_a > option_a ) > ( option_a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001tf__a,type,
bNF_re4157831115608716439on_a_a: ( option_a > option_a > $o ) > ( option_a > a > $o ) > ( option_a > option_a ) > ( option_a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001t__Set__Oset_Itf__a_J_001t__Set__Oset_Itf__a_J,type,
bNF_re8767609936234141277_set_a: ( option_a > option_a > $o ) > ( set_a > set_a > $o ) > ( option_a > set_a ) > ( option_a > set_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001tf__a_001_Eo,type,
bNF_re8895294753853352567_a_a_o: ( option_a > option_a > $o ) > ( a > $o > $o ) > ( option_a > a ) > ( option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001tf__a_001t__Option__Ooption_Itf__a_J,type,
bNF_re1935317234069921315tion_a: ( option_a > option_a > $o ) > ( a > option_a > $o ) > ( option_a > a ) > ( option_a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001tf__a_001tf__a,type,
bNF_re6951206947496014429_a_a_a: ( option_a > option_a > $o ) > ( a > a > $o ) > ( option_a > a ) > ( option_a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001t__Option__Ooption_Itf__a_J_001tf__a_001_062_I_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_M_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J_J_001_062_I_062_Itf__a_Mtf__a_J_M_062_It__Option__Ooption_Itf__a_J_Mtf__a_J_J,type,
bNF_re5218620495166150379on_a_a: ( option_a > a > $o ) > ( ( ( a > option_a ) > option_a > option_a ) > ( ( a > a ) > option_a > a ) > $o ) > ( option_a > ( a > option_a ) > option_a > option_a ) > ( a > ( a > a ) > option_a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001_Eo_001_062_I_062_Itf__a_Mtf__a_J_M_062_It__Option__Ooption_Itf__a_J_Mtf__a_J_J_001_062_I_062_Itf__a_M_Eo_J_M_062_It__Option__Ooption_Itf__a_J_M_Eo_J_J,type,
bNF_re8717284581917077363on_a_o: ( a > $o > $o ) > ( ( ( a > a ) > option_a > a ) > ( ( a > $o ) > option_a > $o ) > $o ) > ( a > ( a > a ) > option_a > a ) > ( $o > ( a > $o ) > option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001t__Option__Ooption_Itf__a_J_001_062_I_062_Itf__a_Mtf__a_J_M_062_It__Option__Ooption_Itf__a_J_Mtf__a_J_J_001_062_I_062_Itf__a_Mt__Option__Ooption_Itf__a_J_J_M_062_It__Option__Ooption_Itf__a_J_Mt__Option__Ooption_Itf__a_J_J_J,type,
bNF_re1882382041600142455tion_a: ( a > option_a > $o ) > ( ( ( a > a ) > option_a > a ) > ( ( a > option_a ) > option_a > option_a ) > $o ) > ( a > ( a > a ) > option_a > a ) > ( option_a > ( a > option_a ) > option_a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001_062_I_062_Itf__a_Mtf__a_J_M_062_It__Option__Ooption_Itf__a_J_Mtf__a_J_J_001_062_I_062_Itf__a_Mtf__a_J_M_062_It__Option__Ooption_Itf__a_J_Mtf__a_J_J,type,
bNF_re6523360481052543525on_a_a: ( a > a > $o ) > ( ( ( a > a ) > option_a > a ) > ( ( a > a ) > option_a > a ) > $o ) > ( a > ( a > a ) > option_a > a ) > ( a > ( a > a ) > option_a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J_001_062_It__Option__Ooption_Itf__a_J_M_Eo_J,type,
bNF_re6100770640034910033on_a_o: ( a > a > $o ) > ( ( option_a > $o ) > ( option_a > $o ) > $o ) > ( a > option_a > $o ) > ( a > option_a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001_062_Itf__a_M_Eo_J_001_062_Itf__a_M_Eo_J,type,
bNF_re6468246989568818141_o_a_o: ( a > a > $o ) > ( ( a > $o ) > ( a > $o ) > $o ) > ( a > a > $o ) > ( a > a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001_Eo_001_Eo,type,
bNF_rel_fun_a_a_o_o: ( a > a > $o ) > ( $o > $o > $o ) > ( a > $o ) > ( a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001_Eo_001t__Option__Ooption_Itf__a_J,type,
bNF_re905553932590079753tion_a: ( a > a > $o ) > ( $o > option_a > $o ) > ( a > $o ) > ( a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001_Eo_001tf__a,type,
bNF_rel_fun_a_a_o_a: ( a > a > $o ) > ( $o > a > $o ) > ( a > $o ) > ( a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001t__Option__Ooption_Itf__a_J_001_Eo,type,
bNF_re1847112384428219057on_a_o: ( a > a > $o ) > ( option_a > $o > $o ) > ( a > option_a ) > ( a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J,type,
bNF_re1187871780581372509tion_a: ( a > a > $o ) > ( option_a > option_a > $o ) > ( a > option_a ) > ( a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001t__Option__Ooption_Itf__a_J_001tf__a,type,
bNF_re5794519239126689175on_a_a: ( a > a > $o ) > ( option_a > a > $o ) > ( a > option_a ) > ( a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001tf__a_001_Eo,type,
bNF_rel_fun_a_a_a_o: ( a > a > $o ) > ( a > $o > $o ) > ( a > a ) > ( a > $o ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001tf__a_001t__Option__Ooption_Itf__a_J,type,
bNF_re3572005357587894051tion_a: ( a > a > $o ) > ( a > option_a > $o ) > ( a > a ) > ( a > option_a ) > $o ).
thf(sy_c_BNF__Def_Orel__fun_001tf__a_001tf__a_001tf__a_001tf__a,type,
bNF_rel_fun_a_a_a_a: ( a > a > $o ) > ( a > a > $o ) > ( a > a ) > ( a > a ) > $o ).
thf(sy_c_BNF__Def_Orel__set_001tf__a_001tf__a,type,
bNF_rel_set_a_a: ( a > a > $o ) > set_a > set_a > $o ).
thf(sy_c_Complete__Lattices_OSup__class_OSup_001t__Set__Oset_Itf__a_J,type,
comple2307003609928055243_set_a: set_set_a > set_a ).
thf(sy_c_Finite__Set_Ofinite_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J,type,
finite8114217219359860531tion_a: set_option_option_a > $o ).
thf(sy_c_Finite__Set_Ofinite_001t__Option__Ooption_Itf__a_J,type,
finite1674126218327898605tion_a: set_option_a > $o ).
thf(sy_c_Finite__Set_Ofinite_001tf__a,type,
finite_finite_a: set_a > $o ).
thf(sy_c_Finite__Set_Ofold_001tf__a_001t__Option__Ooption_Itf__a_J,type,
finite6501707464432451470tion_a: ( a > option_a > option_a ) > option_a > set_a > option_a ).
thf(sy_c_Fun_Ocomp_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J,type,
comp_o1254687777855551975tion_a: ( option_option_a > option_a ) > ( option_a > option_option_a ) > option_a > option_a ).
thf(sy_c_Fun_Ocomp_001t__Option__Ooption_Itf__a_J_001t__Nat__Onat_001t__Option__Ooption_Itf__a_J,type,
comp_o8583038678572498833tion_a: ( option_a > nat ) > ( option_a > option_a ) > option_a > nat ).
thf(sy_c_Fun_Ocomp_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J,type,
comp_o3154387707078715297tion_a: ( option_a > option_a ) > ( option_a > option_a ) > option_a > option_a ).
thf(sy_c_Fun_Ocomp_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001tf__a,type,
comp_o6087033147929006299on_a_a: ( option_a > option_a ) > ( a > option_a ) > a > option_a ).
thf(sy_c_Fun_Ocomp_001t__Option__Ooption_Itf__a_J_001t__Set__Oset_Itf__a_J_001tf__a,type,
comp_o6143895765626710849et_a_a: ( option_a > set_a ) > ( a > option_a ) > a > set_a ).
thf(sy_c_Fun_Ocomp_001t__Option__Ooption_Itf__a_J_001tf__a_001tf__a,type,
comp_option_a_a_a: ( option_a > a ) > ( a > option_a ) > a > a ).
thf(sy_c_Fun_Ocomp_001tf__a_001_Eo_001tf__a,type,
comp_a_o_a: ( a > $o ) > ( a > a ) > a > $o ).
thf(sy_c_Fun_Ocomp_001tf__a_001t__Nat__Onat_001tf__a,type,
comp_a_nat_a: ( a > nat ) > ( a > a ) > a > nat ).
thf(sy_c_Fun_Ocomp_001tf__a_001t__Option__Ooption_Itf__a_J_001tf__a,type,
comp_a_option_a_a: ( a > option_a ) > ( a > a ) > a > option_a ).
thf(sy_c_Fun_Ocomp_001tf__a_001tf__a_001tf__a,type,
comp_a_a_a: ( a > a ) > ( a > a ) > a > a ).
thf(sy_c_Fun_Ofun__upd_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J,type,
fun_up1079276522633388797tion_a: ( option_a > option_a ) > option_a > option_a > option_a > option_a ).
thf(sy_c_Fun_Ofun__upd_001tf__a_001t__Option__Ooption_Itf__a_J,type,
fun_upd_a_option_a: ( a > option_a ) > a > option_a > a > option_a ).
thf(sy_c_Fun_Oid_001t__Option__Ooption_Itf__a_J,type,
id_option_a: option_a > option_a ).
thf(sy_c_Fun_Oid_001tf__a,type,
id_a: a > a ).
thf(sy_c_Fun_Oinj__on_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J,type,
inj_on2224753519991154999tion_a: ( option_a > option_option_a ) > set_option_a > $o ).
thf(sy_c_Fun_Oinj__on_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J,type,
inj_on8559383841115902449tion_a: ( option_a > option_a ) > set_option_a > $o ).
thf(sy_c_Fun_Oinj__on_001tf__a_001t__Option__Ooption_Itf__a_J,type,
inj_on_a_option_a: ( a > option_a ) > set_a > $o ).
thf(sy_c_Fun_Oinj__on_001tf__a_001tf__a,type,
inj_on_a_a: ( a > a ) > set_a > $o ).
thf(sy_c_Groups_Ominus__class_Ominus_001t__Set__Oset_It__Option__Ooption_Itf__a_J_J,type,
minus_1574173051537231627tion_a: set_option_a > set_option_a > set_option_a ).
thf(sy_c_Groups_Ominus__class_Ominus_001t__Set__Oset_Itf__a_J,type,
minus_minus_set_a: set_a > set_a > set_a ).
thf(sy_c_Groups_Ouminus__class_Ouminus_001t__Set__Oset_It__Option__Ooption_Itf__a_J_J,type,
uminus6205308855922866075tion_a: set_option_a > set_option_a ).
thf(sy_c_Groups_Ouminus__class_Ouminus_001t__Set__Oset_Itf__a_J,type,
uminus_uminus_set_a: set_a > set_a ).
thf(sy_c_HOL_Oundefined_001tf__a,type,
undefined_a: a ).
thf(sy_c_If_001t__Option__Ooption_Itf__a_J,type,
if_option_a: $o > option_a > option_a > option_a ).
thf(sy_c_If_001tf__a,type,
if_a: $o > a > a > a ).
thf(sy_c_Lattices_Oinf__class_Oinf_001_062_It__Option__Ooption_Itf__a_J_M_062_It__Option__Ooption_Itf__a_J_M_Eo_J_J,type,
inf_in5160421943901843420on_a_o: ( option_a > option_a > $o ) > ( option_a > option_a > $o ) > option_a > option_a > $o ).
thf(sy_c_Lattices_Oinf__class_Oinf_001_062_Itf__a_M_062_Itf__a_M_Eo_J_J,type,
inf_inf_a_a_o: ( a > a > $o ) > ( a > a > $o ) > a > a > $o ).
thf(sy_c_Lattices_Osup__class_Osup_001t__Set__Oset_Itf__a_J,type,
sup_sup_set_a: set_a > set_a > set_a ).
thf(sy_c_Lattices__Big_Osemilattice__set_001t__Option__Ooption_Itf__a_J,type,
lattic4111267149900974290tion_a: ( option_a > option_a > option_a ) > $o ).
thf(sy_c_Lattices__Big_Osemilattice__set_001tf__a,type,
lattic5961991414251573132_set_a: ( a > a > a ) > $o ).
thf(sy_c_Lattices__Big_Osemilattice__set_OF_001t__Option__Ooption_Itf__a_J,type,
lattic5543840709497872670tion_a: ( option_a > option_a > option_a ) > set_option_a > option_a ).
thf(sy_c_Lattices__Big_Osemilattice__set_OF_001tf__a,type,
lattic5116578512385870296ce_F_a: ( a > a > a ) > set_a > a ).
thf(sy_c_Map_Odom_001t__Option__Ooption_Itf__a_J_001tf__a,type,
dom_option_a_a: ( option_a > option_a ) > set_option_a ).
thf(sy_c_Map_Odom_001tf__a_001tf__a,type,
dom_a_a: ( a > option_a ) > set_a ).
thf(sy_c_Map_Omap__add_001t__Option__Ooption_Itf__a_J_001tf__a,type,
map_add_option_a_a: ( option_a > option_a ) > ( option_a > option_a ) > option_a > option_a ).
thf(sy_c_Map_Omap__add_001tf__a_001tf__a,type,
map_add_a_a: ( a > option_a ) > ( a > option_a ) > a > option_a ).
thf(sy_c_Map_Oran_001tf__a_001tf__a,type,
ran_a_a: ( a > option_a ) > set_a ).
thf(sy_c_Map_Orestrict__map_001t__Option__Ooption_Itf__a_J_001tf__a,type,
restri3984065703976872170on_a_a: ( option_a > option_a ) > set_option_a > option_a > option_a ).
thf(sy_c_Map_Orestrict__map_001tf__a_001tf__a,type,
restrict_map_a_a: ( a > option_a ) > set_a > a > option_a ).
thf(sy_c_Option_Obind_001tf__a_001tf__a,type,
bind_a_a: option_a > ( a > option_a ) > option_a ).
thf(sy_c_Option_Ocombine__options_001tf__a,type,
combine_options_a: ( a > a > a ) > option_a > option_a > option_a ).
thf(sy_c_Option_Ois__none_001tf__a,type,
is_none_a: option_a > $o ).
thf(sy_c_Option_Ooption_ONone_001t__Option__Ooption_Itf__a_J,type,
none_option_a: option_option_a ).
thf(sy_c_Option_Ooption_ONone_001tf__a,type,
none_a: option_a ).
thf(sy_c_Option_Ooption_OSome_001t__Option__Ooption_Itf__a_J,type,
some_option_a: option_a > option_option_a ).
thf(sy_c_Option_Ooption_OSome_001tf__a,type,
some_a: a > option_a ).
thf(sy_c_Option_Ooption_Ocase__option_001_Eo_001t__Option__Ooption_Itf__a_J,type,
case_o3426643154261757367tion_a: $o > ( option_a > $o ) > option_option_a > $o ).
thf(sy_c_Option_Ooption_Ocase__option_001_Eo_001tf__a,type,
case_option_o_a: $o > ( a > $o ) > option_a > $o ).
thf(sy_c_Option_Ooption_Ocase__option_001t__Option__Ooption_Itf__a_J_001tf__a,type,
case_o3148979394504432965on_a_a: option_a > ( a > option_a ) > option_a > option_a ).
thf(sy_c_Option_Ooption_Ocase__option_001tf__a_001t__Option__Ooption_Itf__a_J,type,
case_o926465512965637841tion_a: a > ( option_a > a ) > option_option_a > a ).
thf(sy_c_Option_Ooption_Ocase__option_001tf__a_001tf__a,type,
case_option_a_a: a > ( a > a ) > option_a > a ).
thf(sy_c_Option_Ooption_Omap__option_001t__Option__Ooption_Itf__a_J_001_Eo,type,
map_op2529087131052605791on_a_o: ( option_a > $o ) > option_option_a > option_o ).
thf(sy_c_Option_Ooption_Omap__option_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J,type,
map_op788413144570152203tion_a: ( option_a > option_a ) > option_option_a > option_option_a ).
thf(sy_c_Option_Ooption_Omap__option_001t__Option__Ooption_Itf__a_J_001tf__a,type,
map_op4563205767754224965on_a_a: ( option_a > a ) > option_option_a > option_a ).
thf(sy_c_Option_Ooption_Omap__option_001tf__a_001t__Option__Ooption_Itf__a_J,type,
map_op2340691886215429841tion_a: ( a > option_a ) > option_a > option_option_a ).
thf(sy_c_Option_Ooption_Omap__option_001tf__a_001tf__a,type,
map_option_a_a: ( a > a ) > option_a > option_a ).
thf(sy_c_Option_Ooption_Opred__option_001t__Option__Ooption_Itf__a_J,type,
pred_option_option_a: ( option_a > $o ) > option_option_a > $o ).
thf(sy_c_Option_Ooption_Opred__option_001tf__a,type,
pred_option_a: ( a > $o ) > option_a > $o ).
thf(sy_c_Option_Ooption_Orec__option_001_Eo_001t__Option__Ooption_Itf__a_J,type,
rec_op1346285999958695467tion_a: $o > ( option_a > $o ) > option_option_a > $o ).
thf(sy_c_Option_Ooption_Orec__option_001_Eo_001tf__a,type,
rec_option_o_a: $o > ( a > $o ) > option_a > $o ).
thf(sy_c_Option_Ooption_Orec__option_001t__Option__Ooption_Itf__a_J_001tf__a,type,
rec_op3997991240598549433on_a_a: option_a > ( a > option_a ) > option_a > option_a ).
thf(sy_c_Option_Ooption_Orel__option_001_Eo_001_Eo,type,
rel_option_o_o: ( $o > $o > $o ) > option_o > option_o > $o ).
thf(sy_c_Option_Ooption_Orel__option_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J,type,
rel_op4798662380513671176tion_a: ( option_a > option_a > $o ) > option_option_a > option_option_a > $o ).
thf(sy_c_Option_Ooption_Orel__option_001t__Option__Ooption_Itf__a_J_001tf__a,type,
rel_op3736390606718109634on_a_a: ( option_a > a > $o ) > option_option_a > option_a > $o ).
thf(sy_c_Option_Ooption_Orel__option_001tf__a_001t__Option__Ooption_Itf__a_J,type,
rel_op1513876725179314510tion_a: ( a > option_a > $o ) > option_a > option_option_a > $o ).
thf(sy_c_Option_Ooption_Orel__option_001tf__a_001tf__a,type,
rel_option_a_a: ( a > a > $o ) > option_a > option_a > $o ).
thf(sy_c_Option_Ooption_Oset__option_001t__Option__Ooption_Itf__a_J,type,
set_option_option_a2: option_option_a > set_option_a ).
thf(sy_c_Option_Ooption_Oset__option_001tf__a,type,
set_option_a2: option_a > set_a ).
thf(sy_c_Option_Ooption_Osize__option_001tf__a,type,
size_option_a: ( a > nat ) > option_a > nat ).
thf(sy_c_Option_Ooption_Othe_001t__Option__Ooption_Itf__a_J,type,
the_option_a: option_option_a > option_a ).
thf(sy_c_Option_Ooption_Othe_001tf__a,type,
the_a: option_a > a ).
thf(sy_c_Option_Othese_001t__Option__Ooption_Itf__a_J,type,
these_option_a: set_option_option_a > set_option_a ).
thf(sy_c_Option_Othese_001tf__a,type,
these_a: set_option_a > set_a ).
thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_J,type,
bot_bo4163488203964334806tion_a: set_option_option_a ).
thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_It__Option__Ooption_Itf__a_J_J,type,
bot_bot_set_option_a: set_option_a ).
thf(sy_c_Orderings_Obot__class_Obot_001t__Set__Oset_Itf__a_J,type,
bot_bot_set_a: set_a ).
thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_It__Option__Ooption_It__Option__Ooption_Itf__a_J_J_J,type,
top_to1659475022456381882tion_a: set_option_option_a ).
thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_It__Option__Ooption_Itf__a_J_J,type,
top_top_set_option_a: set_option_a ).
thf(sy_c_Orderings_Otop__class_Otop_001t__Set__Oset_Itf__a_J,type,
top_top_set_a: set_a ).
thf(sy_c_Product__Type_OPair_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J,type,
produc9011544418120257559tion_a: option_a > option_a > produc3509355604313844263tion_a ).
thf(sy_c_Product__Type_Oprod_Ocase__prod_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J_001_Eo,type,
produc7248784972643495020on_a_o: ( option_a > option_a > $o ) > produc3509355604313844263tion_a > $o ).
thf(sy_c_Set_OCollect_001t__Option__Ooption_Itf__a_J,type,
collect_option_a: ( option_a > $o ) > set_option_a ).
thf(sy_c_Set_OCollect_001tf__a,type,
collect_a: ( a > $o ) > set_a ).
thf(sy_c_Set_Oimage_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J,type,
image_2132136900116418507tion_a: ( option_a > option_option_a ) > set_option_a > set_option_option_a ).
thf(sy_c_Set_Oimage_001t__Option__Ooption_Itf__a_J_001t__Option__Ooption_Itf__a_J,type,
image_7439109396645324421tion_a: ( option_a > option_a ) > set_option_a > set_option_a ).
thf(sy_c_Set_Oimage_001t__Option__Ooption_Itf__a_J_001tf__a,type,
image_option_a_a: ( option_a > a ) > set_option_a > set_a ).
thf(sy_c_Set_Oimage_001tf__a_001t__Option__Ooption_Itf__a_J,type,
image_a_option_a: ( a > option_a ) > set_a > set_option_a ).
thf(sy_c_Set_Oimage_001tf__a_001t__Set__Oset_Itf__a_J,type,
image_a_set_a: ( a > set_a ) > set_a > set_set_a ).
thf(sy_c_Set_Oimage_001tf__a_001tf__a,type,
image_a_a: ( a > a ) > set_a > set_a ).
thf(sy_c_Set_Oinsert_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J,type,
insert605063979879581146tion_a: option_option_a > set_option_option_a > set_option_option_a ).
thf(sy_c_Set_Oinsert_001t__Option__Ooption_Itf__a_J,type,
insert_option_a: option_a > set_option_a > set_option_a ).
thf(sy_c_Set_Oinsert_001tf__a,type,
insert_a: a > set_a > set_a ).
thf(sy_c_UnboundedLogic_Ologic_001tf__a_001tf__b,type,
logic_a_b: ( a > a > option_a ) > ( b > a > a ) > ( b > b > b ) > ( b > b > b ) > ( b > b ) > b > ( a > $o ) > $o ).
thf(sy_c_UnboundedLogic_Opre__logic_Ocompatible_001tf__a,type,
pre_compatible_a: ( a > a > option_a ) > a > a > $o ).
thf(sy_c_UnboundedLogic_Opre__logic_Olarger_001tf__a,type,
pre_larger_a: ( a > a > option_a ) > a > a > $o ).
thf(sy_c_member_001t__Option__Ooption_It__Option__Ooption_Itf__a_J_J,type,
member5113800082084363315tion_a: option_option_a > set_option_option_a > $o ).
thf(sy_c_member_001t__Option__Ooption_Itf__a_J,type,
member_option_a: option_a > set_option_a > $o ).
thf(sy_c_member_001tf__a,type,
member_a: a > set_a > $o ).
thf(sy_v_a,type,
a2: a ).
thf(sy_v_b,type,
b2: a ).
thf(sy_v_mult,type,
mult: b > a > a ).
thf(sy_v_one,type,
one: b ).
thf(sy_v_plus,type,
plus: a > a > option_a ).
thf(sy_v_sadd,type,
sadd: b > b > b ).
thf(sy_v_sinv,type,
sinv: b > b ).
thf(sy_v_smult,type,
smult: b > b > b ).
thf(sy_v_valid,type,
valid: a > $o ).
thf(sy_v_x,type,
x: a ).
% Relevant facts (326)
thf(fact_0_commutative,axiom,
! [A: a,B: a] :
( ( plus @ A @ B )
= ( plus @ B @ A ) ) ).
% commutative
thf(fact_1_assms_I2_J,axiom,
pre_compatible_a @ plus @ x @ a2 ).
% assms(2)
thf(fact_2_assms_I1_J,axiom,
pre_larger_a @ plus @ a2 @ b2 ).
% assms(1)
thf(fact_3_pre__logic_Ocompatible_Ocong,axiom,
pre_compatible_a = pre_compatible_a ).
% pre_logic.compatible.cong
thf(fact_4_compatible__def,axiom,
! [A: a,B: a] :
( ( pre_compatible_a @ plus @ A @ B )
= ( ( plus @ A @ B )
!= none_a ) ) ).
% compatible_def
thf(fact_5_asso2,axiom,
! [A: a,B: a,Ab: a,C: a] :
( ( ( ( plus @ A @ B )
= ( some_a @ Ab ) )
& ~ ( pre_compatible_a @ plus @ B @ C ) )
=> ~ ( pre_compatible_a @ plus @ Ab @ C ) ) ).
% asso2
thf(fact_6_asso3,axiom,
! [A: a,B: a,C: a,Bc: a] :
( ~ ( pre_compatible_a @ plus @ A @ B )
=> ( ( ( plus @ B @ C )
= ( some_a @ Bc ) )
=> ~ ( pre_compatible_a @ plus @ A @ Bc ) ) ) ).
% asso3
thf(fact_7_asso1,axiom,
! [A: a,B: a,Ab: a,C: a,Bc: a] :
( ( ( ( plus @ A @ B )
= ( some_a @ Ab ) )
& ( ( plus @ B @ C )
= ( some_a @ Bc ) ) )
=> ( ( plus @ Ab @ C )
= ( plus @ A @ Bc ) ) ) ).
% asso1
thf(fact_8_sadd__comm,axiom,
! [P: b,Q: b] :
( ( sadd @ P @ Q )
= ( sadd @ Q @ P ) ) ).
% sadd_comm
thf(fact_9_compatible__iff,axiom,
! [A: a,B: a,P: b] :
( ( pre_compatible_a @ plus @ A @ B )
= ( pre_compatible_a @ plus @ ( mult @ P @ A ) @ ( mult @ P @ B ) ) ) ).
% compatible_iff
thf(fact_10_compatible__imp,axiom,
! [A: a,B: a,P: b] :
( ( pre_compatible_a @ plus @ A @ B )
=> ( pre_compatible_a @ plus @ ( mult @ P @ A ) @ ( mult @ P @ B ) ) ) ).
% compatible_imp
thf(fact_11_larger__def,axiom,
! [A: a,B: a] :
( ( pre_larger_a @ plus @ A @ B )
= ( ? [C2: a] :
( ( some_a @ A )
= ( plus @ B @ C2 ) ) ) ) ).
% larger_def
thf(fact_12_logic_Ocompatible__iff,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,A: a,B: a,P: b] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( pre_compatible_a @ Plus @ A @ B )
= ( pre_compatible_a @ Plus @ ( Mult @ P @ A ) @ ( Mult @ P @ B ) ) ) ) ).
% logic.compatible_iff
thf(fact_13_logic_Ocompatible__imp,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,A: a,B: a,P: b] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( pre_compatible_a @ Plus @ A @ B )
=> ( pre_compatible_a @ Plus @ ( Mult @ P @ A ) @ ( Mult @ P @ B ) ) ) ) ).
% logic.compatible_imp
thf(fact_14_pre__logic_Ocompatible__def,axiom,
( pre_compatible_a
= ( ^ [Plus2: a > a > option_a,A2: a,B2: a] :
( ( Plus2 @ A2 @ B2 )
!= none_a ) ) ) ).
% pre_logic.compatible_def
thf(fact_15_can__divide,axiom,
! [P: b,A: a,B: a] :
( ( ( mult @ P @ A )
= ( mult @ P @ B ) )
=> ( A = B ) ) ).
% can_divide
thf(fact_16_plus__mult,axiom,
! [A: a,B: a,C: a,P: b] :
( ( ( some_a @ A )
= ( plus @ B @ C ) )
=> ( ( some_a @ ( mult @ P @ A ) )
= ( plus @ ( mult @ P @ B ) @ ( mult @ P @ C ) ) ) ) ).
% plus_mult
thf(fact_17_larger__same,axiom,
! [A: a,B: a,P: b] :
( ( pre_larger_a @ plus @ A @ B )
= ( pre_larger_a @ plus @ ( mult @ P @ A ) @ ( mult @ P @ B ) ) ) ).
% larger_same
thf(fact_18_distrib__mult,axiom,
! [P: b,Q: b,X: a] :
( ( some_a @ ( mult @ ( sadd @ P @ Q ) @ X ) )
= ( plus @ ( mult @ P @ X ) @ ( mult @ Q @ X ) ) ) ).
% distrib_mult
thf(fact_19_unique__inv,axiom,
! [A: a,P: b,B: a] :
( ( A
= ( mult @ P @ B ) )
= ( B
= ( mult @ ( sinv @ P ) @ A ) ) ) ).
% unique_inv
thf(fact_20_one__neutral,axiom,
! [A: a] :
( ( mult @ one @ A )
= A ) ).
% one_neutral
thf(fact_21_logic_Oasso1,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,A: a,B: a,Ab: a,C: a,Bc: a] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( ( ( Plus @ A @ B )
= ( some_a @ Ab ) )
& ( ( Plus @ B @ C )
= ( some_a @ Bc ) ) )
=> ( ( Plus @ Ab @ C )
= ( Plus @ A @ Bc ) ) ) ) ).
% logic.asso1
thf(fact_22_logic_Oplus__mult,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,A: a,B: a,C: a,P: b] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( ( some_a @ A )
= ( Plus @ B @ C ) )
=> ( ( some_a @ ( Mult @ P @ A ) )
= ( Plus @ ( Mult @ P @ B ) @ ( Mult @ P @ C ) ) ) ) ) ).
% logic.plus_mult
thf(fact_23_logic_Osadd__comm,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,P: b,Q: b] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( Sadd @ P @ Q )
= ( Sadd @ Q @ P ) ) ) ).
% logic.sadd_comm
thf(fact_24_logic_Ocan__divide,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,P: b,A: a,B: a] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( ( Mult @ P @ A )
= ( Mult @ P @ B ) )
=> ( A = B ) ) ) ).
% logic.can_divide
thf(fact_25_logic_Osmult__asso,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,P: b,Q: b,R: b] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( Smult @ ( Smult @ P @ Q ) @ R )
= ( Smult @ P @ ( Smult @ Q @ R ) ) ) ) ).
% logic.smult_asso
thf(fact_26_logic_Osmult__comm,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,P: b,Q: b] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( Smult @ P @ Q )
= ( Smult @ Q @ P ) ) ) ).
% logic.smult_comm
thf(fact_27_logic_Ounique__inv,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,A: a,P: b,B: a] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( A
= ( Mult @ P @ B ) )
= ( B
= ( Mult @ ( Sinv @ P ) @ A ) ) ) ) ).
% logic.unique_inv
thf(fact_28_logic_Ovalid__mono,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,A: a,B: a] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( ( Valid @ A )
& ( pre_larger_a @ Plus @ A @ B ) )
=> ( Valid @ B ) ) ) ).
% logic.valid_mono
thf(fact_29_logic_Ocommutative,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,A: a,B: a] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( Plus @ A @ B )
= ( Plus @ B @ A ) ) ) ).
% logic.commutative
thf(fact_30_logic_Odouble__mult,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,P: b,Q: b,A: a] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( Mult @ P @ ( Mult @ Q @ A ) )
= ( Mult @ ( Smult @ P @ Q ) @ A ) ) ) ).
% logic.double_mult
thf(fact_31_logic_Olarger__same,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,A: a,B: a,P: b] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( pre_larger_a @ Plus @ A @ B )
= ( pre_larger_a @ Plus @ ( Mult @ P @ A ) @ ( Mult @ P @ B ) ) ) ) ).
% logic.larger_same
thf(fact_32_logic_Oone__neutral,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,A: a] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( Mult @ One @ A )
= A ) ) ).
% logic.one_neutral
thf(fact_33_logic_Odistrib__mult,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,P: b,Q: b,X: a] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( some_a @ ( Mult @ ( Sadd @ P @ Q ) @ X ) )
= ( Plus @ ( Mult @ P @ X ) @ ( Mult @ Q @ X ) ) ) ) ).
% logic.distrib_mult
thf(fact_34_logic_Osinv__inverse,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,P: b] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( Smult @ P @ ( Sinv @ P ) )
= One ) ) ).
% logic.sinv_inverse
thf(fact_35_logic_Osone__neutral,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,P: b] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( Smult @ One @ P )
= P ) ) ).
% logic.sone_neutral
thf(fact_36_logic_Osmult__distrib,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,P: b,Q: b,R: b] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( Smult @ P @ ( Sadd @ Q @ R ) )
= ( Sadd @ ( Smult @ P @ Q ) @ ( Smult @ P @ R ) ) ) ) ).
% logic.smult_distrib
thf(fact_37_pre__logic_Olarger__def,axiom,
( pre_larger_a
= ( ^ [Plus2: a > a > option_a,A2: a,B2: a] :
? [C2: a] :
( ( some_a @ A2 )
= ( Plus2 @ B2 @ C2 ) ) ) ) ).
% pre_logic.larger_def
thf(fact_38_logic__def,axiom,
( logic_a_b
= ( ^ [Plus2: a > a > option_a,Mult2: b > a > a,Smult2: b > b > b,Sadd2: b > b > b,Sinv2: b > b,One2: b,Valid2: a > $o] :
( ! [A2: a,B2: a] :
( ( Plus2 @ A2 @ B2 )
= ( Plus2 @ B2 @ A2 ) )
& ! [A2: a,B2: a,Ab2: a,C2: a,Bc2: a] :
( ( ( ( Plus2 @ A2 @ B2 )
= ( some_a @ Ab2 ) )
& ( ( Plus2 @ B2 @ C2 )
= ( some_a @ Bc2 ) ) )
=> ( ( Plus2 @ Ab2 @ C2 )
= ( Plus2 @ A2 @ Bc2 ) ) )
& ! [A2: a,B2: a,Ab2: a,C2: a] :
( ( ( ( Plus2 @ A2 @ B2 )
= ( some_a @ Ab2 ) )
& ~ ( pre_compatible_a @ Plus2 @ B2 @ C2 ) )
=> ~ ( pre_compatible_a @ Plus2 @ Ab2 @ C2 ) )
& ! [P2: b] :
( ( Smult2 @ P2 @ ( Sinv2 @ P2 ) )
= One2 )
& ! [P2: b] :
( ( Smult2 @ One2 @ P2 )
= P2 )
& ! [P2: b,Q2: b] :
( ( Sadd2 @ P2 @ Q2 )
= ( Sadd2 @ Q2 @ P2 ) )
& ! [P2: b,Q2: b] :
( ( Smult2 @ P2 @ Q2 )
= ( Smult2 @ Q2 @ P2 ) )
& ! [P2: b,Q2: b,R2: b] :
( ( Smult2 @ P2 @ ( Sadd2 @ Q2 @ R2 ) )
= ( Sadd2 @ ( Smult2 @ P2 @ Q2 ) @ ( Smult2 @ P2 @ R2 ) ) )
& ! [P2: b,Q2: b,R2: b] :
( ( Smult2 @ ( Smult2 @ P2 @ Q2 ) @ R2 )
= ( Smult2 @ P2 @ ( Smult2 @ Q2 @ R2 ) ) )
& ! [P2: b,Q2: b,A2: a] :
( ( Mult2 @ P2 @ ( Mult2 @ Q2 @ A2 ) )
= ( Mult2 @ ( Smult2 @ P2 @ Q2 ) @ A2 ) )
& ! [A2: a,B2: a,C2: a,P2: b] :
( ( ( some_a @ A2 )
= ( Plus2 @ B2 @ C2 ) )
=> ( ( some_a @ ( Mult2 @ P2 @ A2 ) )
= ( Plus2 @ ( Mult2 @ P2 @ B2 ) @ ( Mult2 @ P2 @ C2 ) ) ) )
& ! [P2: b,Q2: b,X2: a] :
( ( some_a @ ( Mult2 @ ( Sadd2 @ P2 @ Q2 ) @ X2 ) )
= ( Plus2 @ ( Mult2 @ P2 @ X2 ) @ ( Mult2 @ Q2 @ X2 ) ) )
& ! [A2: a] :
( ( Mult2 @ One2 @ A2 )
= A2 )
& ! [A2: a,B2: a] :
( ( ( Valid2 @ A2 )
& ( pre_larger_a @ Plus2 @ A2 @ B2 ) )
=> ( Valid2 @ B2 ) ) ) ) ) ).
% logic_def
thf(fact_39_pre__logic_Olarger_Ocong,axiom,
pre_larger_a = pre_larger_a ).
% pre_logic.larger.cong
thf(fact_40_logic_Oasso3,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,A: a,B: a,C: a,Bc: a] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ~ ( pre_compatible_a @ Plus @ A @ B )
=> ( ( ( Plus @ B @ C )
= ( some_a @ Bc ) )
=> ~ ( pre_compatible_a @ Plus @ A @ Bc ) ) ) ) ).
% logic.asso3
thf(fact_41_logic_Oasso2,axiom,
! [Plus: a > a > option_a,Mult: b > a > a,Smult: b > b > b,Sadd: b > b > b,Sinv: b > b,One: b,Valid: a > $o,A: a,B: a,Ab: a,C: a] :
( ( logic_a_b @ Plus @ Mult @ Smult @ Sadd @ Sinv @ One @ Valid )
=> ( ( ( ( Plus @ A @ B )
= ( some_a @ Ab ) )
& ~ ( pre_compatible_a @ Plus @ B @ C ) )
=> ~ ( pre_compatible_a @ Plus @ Ab @ C ) ) ) ).
% logic.asso2
thf(fact_42_mem__Collect__eq,axiom,
! [A: a,P3: a > $o] :
( ( member_a @ A @ ( collect_a @ P3 ) )
= ( P3 @ A ) ) ).
% mem_Collect_eq
thf(fact_43_mem__Collect__eq,axiom,
! [A: option_a,P3: option_a > $o] :
( ( member_option_a @ A @ ( collect_option_a @ P3 ) )
= ( P3 @ A ) ) ).
% mem_Collect_eq
thf(fact_44_Collect__mem__eq,axiom,
! [A3: set_a] :
( ( collect_a
@ ^ [X2: a] : ( member_a @ X2 @ A3 ) )
= A3 ) ).
% Collect_mem_eq
thf(fact_45_Collect__mem__eq,axiom,
! [A3: set_option_a] :
( ( collect_option_a
@ ^ [X2: option_a] : ( member_option_a @ X2 @ A3 ) )
= A3 ) ).
% Collect_mem_eq
thf(fact_46_Collect__cong,axiom,
! [P3: option_a > $o,Q3: option_a > $o] :
( ! [X3: option_a] :
( ( P3 @ X3 )
= ( Q3 @ X3 ) )
=> ( ( collect_option_a @ P3 )
= ( collect_option_a @ Q3 ) ) ) ).
% Collect_cong
thf(fact_47_not__None__eq,axiom,
! [X: option_a] :
( ( X != none_a )
= ( ? [Y: a] :
( X
= ( some_a @ Y ) ) ) ) ).
% not_None_eq
thf(fact_48_not__Some__eq,axiom,
! [X: option_a] :
( ( ! [Y: a] :
( X
!= ( some_a @ Y ) ) )
= ( X = none_a ) ) ).
% not_Some_eq
thf(fact_49_option_Oinject,axiom,
! [X22: a,Y2: a] :
( ( ( some_a @ X22 )
= ( some_a @ Y2 ) )
= ( X22 = Y2 ) ) ).
% option.inject
thf(fact_50_smult__distrib,axiom,
! [P: b,Q: b,R: b] :
( ( smult @ P @ ( sadd @ Q @ R ) )
= ( sadd @ ( smult @ P @ Q ) @ ( smult @ P @ R ) ) ) ).
% smult_distrib
thf(fact_51_option_Odistinct_I1_J,axiom,
! [X22: a] :
( none_a
!= ( some_a @ X22 ) ) ).
% option.distinct(1)
thf(fact_52_option_OdiscI,axiom,
! [Option: option_a,X22: a] :
( ( Option
= ( some_a @ X22 ) )
=> ( Option != none_a ) ) ).
% option.discI
thf(fact_53_option_Oexhaust,axiom,
! [Y3: option_a] :
( ( Y3 != none_a )
=> ~ ! [X23: a] :
( Y3
!= ( some_a @ X23 ) ) ) ).
% option.exhaust
thf(fact_54_split__option__ex,axiom,
( ( ^ [P4: option_a > $o] :
? [X4: option_a] : ( P4 @ X4 ) )
= ( ^ [P5: option_a > $o] :
( ( P5 @ none_a )
| ? [X2: a] : ( P5 @ ( some_a @ X2 ) ) ) ) ) ).
% split_option_ex
thf(fact_55_split__option__all,axiom,
( ( ^ [P4: option_a > $o] :
! [X4: option_a] : ( P4 @ X4 ) )
= ( ^ [P5: option_a > $o] :
( ( P5 @ none_a )
& ! [X2: a] : ( P5 @ ( some_a @ X2 ) ) ) ) ) ).
% split_option_all
thf(fact_56_combine__options__cases,axiom,
! [X: option_a,P3: option_a > option_a > $o,Y3: option_a] :
( ( ( X = none_a )
=> ( P3 @ X @ Y3 ) )
=> ( ( ( Y3 = none_a )
=> ( P3 @ X @ Y3 ) )
=> ( ! [A4: a,B3: a] :
( ( X
= ( some_a @ A4 ) )
=> ( ( Y3
= ( some_a @ B3 ) )
=> ( P3 @ X @ Y3 ) ) )
=> ( P3 @ X @ Y3 ) ) ) ) ).
% combine_options_cases
thf(fact_57_double__mult,axiom,
! [P: b,Q: b,A: a] :
( ( mult @ P @ ( mult @ Q @ A ) )
= ( mult @ ( smult @ P @ Q ) @ A ) ) ).
% double_mult
thf(fact_58_smult__asso,axiom,
! [P: b,Q: b,R: b] :
( ( smult @ ( smult @ P @ Q ) @ R )
= ( smult @ P @ ( smult @ Q @ R ) ) ) ).
% smult_asso
thf(fact_59_smult__comm,axiom,
! [P: b,Q: b] :
( ( smult @ P @ Q )
= ( smult @ Q @ P ) ) ).
% smult_comm
thf(fact_60_sone__neutral,axiom,
! [P: b] :
( ( smult @ one @ P )
= P ) ).
% sone_neutral
thf(fact_61_sinv__inverse,axiom,
! [P: b] :
( ( smult @ P @ ( sinv @ P ) )
= one ) ).
% sinv_inverse
thf(fact_62_logic__axioms,axiom,
logic_a_b @ plus @ mult @ smult @ sadd @ sinv @ one @ valid ).
% logic_axioms
thf(fact_63_valid__mono,axiom,
! [A: a,B: a] :
( ( ( valid @ A )
& ( pre_larger_a @ plus @ A @ B ) )
=> ( valid @ B ) ) ).
% valid_mono
thf(fact_64_option_Ocollapse,axiom,
! [Option: option_a] :
( ( Option != none_a )
=> ( ( some_a @ ( the_a @ Option ) )
= Option ) ) ).
% option.collapse
thf(fact_65_bind__split__asm,axiom,
! [P3: option_a > $o,M: option_a,F: a > option_a] :
( ( P3 @ ( bind_a_a @ M @ F ) )
= ( ~ ( ( ( M = none_a )
& ~ ( P3 @ none_a ) )
| ? [X2: a] :
( ( M
= ( some_a @ X2 ) )
& ~ ( P3 @ ( F @ X2 ) ) ) ) ) ) ).
% bind_split_asm
thf(fact_66_bind__split,axiom,
! [P3: option_a > $o,M: option_a,F: a > option_a] :
( ( P3 @ ( bind_a_a @ M @ F ) )
= ( ( ( M = none_a )
=> ( P3 @ none_a ) )
& ! [V: a] :
( ( M
= ( some_a @ V ) )
=> ( P3 @ ( F @ V ) ) ) ) ) ).
% bind_split
thf(fact_67_option_Oexhaust__sel,axiom,
! [Option: option_a] :
( ( Option != none_a )
=> ( Option
= ( some_a @ ( the_a @ Option ) ) ) ) ).
% option.exhaust_sel
thf(fact_68_combine__options__simps_I1_J,axiom,
! [F: a > a > a,Y3: option_a] :
( ( combine_options_a @ F @ none_a @ Y3 )
= Y3 ) ).
% combine_options_simps(1)
thf(fact_69_combine__options__simps_I2_J,axiom,
! [F: a > a > a,X: option_a] :
( ( combine_options_a @ F @ X @ none_a )
= X ) ).
% combine_options_simps(2)
thf(fact_70_combine__options__simps_I3_J,axiom,
! [F: a > a > a,A: a,B: a] :
( ( combine_options_a @ F @ ( some_a @ A ) @ ( some_a @ B ) )
= ( some_a @ ( F @ A @ B ) ) ) ).
% combine_options_simps(3)
thf(fact_71_bind__runit,axiom,
! [X: option_a] :
( ( bind_a_a @ X @ some_a )
= X ) ).
% bind_runit
thf(fact_72_combine__options__left__commute,axiom,
! [F: a > a > a,Y3: option_a,X: option_a,Z: option_a] :
( ! [X3: a,Y4: a] :
( ( F @ X3 @ Y4 )
= ( F @ Y4 @ X3 ) )
=> ( ! [X3: a,Y4: a,Z2: a] :
( ( F @ ( F @ X3 @ Y4 ) @ Z2 )
= ( F @ X3 @ ( F @ Y4 @ Z2 ) ) )
=> ( ( combine_options_a @ F @ Y3 @ ( combine_options_a @ F @ X @ Z ) )
= ( combine_options_a @ F @ X @ ( combine_options_a @ F @ Y3 @ Z ) ) ) ) ) ).
% combine_options_left_commute
thf(fact_73_combine__options__commute,axiom,
! [F: a > a > a,X: option_a,Y3: option_a] :
( ! [X3: a,Y4: a] :
( ( F @ X3 @ Y4 )
= ( F @ Y4 @ X3 ) )
=> ( ( combine_options_a @ F @ X @ Y3 )
= ( combine_options_a @ F @ Y3 @ X ) ) ) ).
% combine_options_commute
thf(fact_74_combine__options__assoc,axiom,
! [F: a > a > a,X: option_a,Y3: option_a,Z: option_a] :
( ! [X3: a,Y4: a,Z2: a] :
( ( F @ ( F @ X3 @ Y4 ) @ Z2 )
= ( F @ X3 @ ( F @ Y4 @ Z2 ) ) )
=> ( ( combine_options_a @ F @ ( combine_options_a @ F @ X @ Y3 ) @ Z )
= ( combine_options_a @ F @ X @ ( combine_options_a @ F @ Y3 @ Z ) ) ) ) ).
% combine_options_assoc
thf(fact_75_bind__option__cong__code,axiom,
! [X: option_a,Y3: option_a,F: a > option_a] :
( ( X = Y3 )
=> ( ( bind_a_a @ X @ F )
= ( bind_a_a @ Y3 @ F ) ) ) ).
% bind_option_cong_code
thf(fact_76_bind__eq__None__conv,axiom,
! [A: option_a,F: a > option_a] :
( ( ( bind_a_a @ A @ F )
= none_a )
= ( ( A = none_a )
| ( ( F @ ( the_a @ A ) )
= none_a ) ) ) ).
% bind_eq_None_conv
thf(fact_77_option_Osel,axiom,
! [X22: a] :
( ( the_a @ ( some_a @ X22 ) )
= X22 ) ).
% option.sel
thf(fact_78_option_Oexpand,axiom,
! [Option: option_a,Option2: option_a] :
( ( ( Option = none_a )
= ( Option2 = none_a ) )
=> ( ( ( Option != none_a )
=> ( ( Option2 != none_a )
=> ( ( the_a @ Option )
= ( the_a @ Option2 ) ) ) )
=> ( Option = Option2 ) ) ) ).
% option.expand
thf(fact_79_bind_Obind__lunit,axiom,
! [X: a,F: a > option_a] :
( ( bind_a_a @ ( some_a @ X ) @ F )
= ( F @ X ) ) ).
% bind.bind_lunit
thf(fact_80_Option_Obind__cong,axiom,
! [X: option_a,Y3: option_a,F: a > option_a,G: a > option_a] :
( ( X = Y3 )
=> ( ! [A4: a] :
( ( Y3
= ( some_a @ A4 ) )
=> ( ( F @ A4 )
= ( G @ A4 ) ) )
=> ( ( bind_a_a @ X @ F )
= ( bind_a_a @ Y3 @ G ) ) ) ) ).
% Option.bind_cong
thf(fact_81_bind__eq__Some__conv,axiom,
! [F: option_a,G: a > option_a,X: a] :
( ( ( bind_a_a @ F @ G )
= ( some_a @ X ) )
= ( ? [Y: a] :
( ( F
= ( some_a @ Y ) )
& ( ( G @ Y )
= ( some_a @ X ) ) ) ) ) ).
% bind_eq_Some_conv
thf(fact_82_bind_Obind__lzero,axiom,
! [F: a > option_a] :
( ( bind_a_a @ none_a @ F )
= none_a ) ).
% bind.bind_lzero
thf(fact_83_option_Osplit__sel,axiom,
! [P3: $o > $o,F1: $o,F2: a > $o,Option: option_a] :
( ( P3 @ ( case_option_o_a @ F1 @ F2 @ Option ) )
= ( ( ( Option = none_a )
=> ( P3 @ F1 ) )
& ( ( Option
= ( some_a @ ( the_a @ Option ) ) )
=> ( P3 @ ( F2 @ ( the_a @ Option ) ) ) ) ) ) ).
% option.split_sel
thf(fact_84_option_Osplit__sel,axiom,
! [P3: option_a > $o,F1: option_a,F2: a > option_a,Option: option_a] :
( ( P3 @ ( case_o3148979394504432965on_a_a @ F1 @ F2 @ Option ) )
= ( ( ( Option = none_a )
=> ( P3 @ F1 ) )
& ( ( Option
= ( some_a @ ( the_a @ Option ) ) )
=> ( P3 @ ( F2 @ ( the_a @ Option ) ) ) ) ) ) ).
% option.split_sel
thf(fact_85_option_Osplit__sel,axiom,
! [P3: a > $o,F1: a,F2: a > a,Option: option_a] :
( ( P3 @ ( case_option_a_a @ F1 @ F2 @ Option ) )
= ( ( ( Option = none_a )
=> ( P3 @ F1 ) )
& ( ( Option
= ( some_a @ ( the_a @ Option ) ) )
=> ( P3 @ ( F2 @ ( the_a @ Option ) ) ) ) ) ) ).
% option.split_sel
thf(fact_86_option_Osplit__sel__asm,axiom,
! [P3: $o > $o,F1: $o,F2: a > $o,Option: option_a] :
( ( P3 @ ( case_option_o_a @ F1 @ F2 @ Option ) )
= ( ~ ( ( ( Option = none_a )
& ~ ( P3 @ F1 ) )
| ( ( Option
= ( some_a @ ( the_a @ Option ) ) )
& ~ ( P3 @ ( F2 @ ( the_a @ Option ) ) ) ) ) ) ) ).
% option.split_sel_asm
thf(fact_87_option_Osplit__sel__asm,axiom,
! [P3: option_a > $o,F1: option_a,F2: a > option_a,Option: option_a] :
( ( P3 @ ( case_o3148979394504432965on_a_a @ F1 @ F2 @ Option ) )
= ( ~ ( ( ( Option = none_a )
& ~ ( P3 @ F1 ) )
| ( ( Option
= ( some_a @ ( the_a @ Option ) ) )
& ~ ( P3 @ ( F2 @ ( the_a @ Option ) ) ) ) ) ) ) ).
% option.split_sel_asm
thf(fact_88_option_Osplit__sel__asm,axiom,
! [P3: a > $o,F1: a,F2: a > a,Option: option_a] :
( ( P3 @ ( case_option_a_a @ F1 @ F2 @ Option ) )
= ( ~ ( ( ( Option = none_a )
& ~ ( P3 @ F1 ) )
| ( ( Option
= ( some_a @ ( the_a @ Option ) ) )
& ~ ( P3 @ ( F2 @ ( the_a @ Option ) ) ) ) ) ) ) ).
% option.split_sel_asm
thf(fact_89_option_Osimps_I5_J,axiom,
! [F1: $o,F2: a > $o,X22: a] :
( ( case_option_o_a @ F1 @ F2 @ ( some_a @ X22 ) )
= ( F2 @ X22 ) ) ).
% option.simps(5)
thf(fact_90_option_Osimps_I5_J,axiom,
! [F1: option_a,F2: a > option_a,X22: a] :
( ( case_o3148979394504432965on_a_a @ F1 @ F2 @ ( some_a @ X22 ) )
= ( F2 @ X22 ) ) ).
% option.simps(5)
thf(fact_91_option_Osimps_I5_J,axiom,
! [F1: a,F2: a > a,X22: a] :
( ( case_option_a_a @ F1 @ F2 @ ( some_a @ X22 ) )
= ( F2 @ X22 ) ) ).
% option.simps(5)
thf(fact_92_option_Osimps_I4_J,axiom,
! [F1: $o,F2: a > $o] :
( ( case_option_o_a @ F1 @ F2 @ none_a )
= F1 ) ).
% option.simps(4)
thf(fact_93_option_Osimps_I4_J,axiom,
! [F1: option_a,F2: a > option_a] :
( ( case_o3148979394504432965on_a_a @ F1 @ F2 @ none_a )
= F1 ) ).
% option.simps(4)
thf(fact_94_option_Osimps_I4_J,axiom,
! [F1: a,F2: a > a] :
( ( case_option_a_a @ F1 @ F2 @ none_a )
= F1 ) ).
% option.simps(4)
thf(fact_95_option_Ocase__eq__if,axiom,
( case_option_o_a
= ( ^ [F12: $o,F22: a > $o,Option3: option_a] :
( ( ( Option3 = none_a )
=> F12 )
& ( ( Option3 != none_a )
=> ( F22 @ ( the_a @ Option3 ) ) ) ) ) ) ).
% option.case_eq_if
thf(fact_96_option_Ocase__eq__if,axiom,
( case_o3148979394504432965on_a_a
= ( ^ [F12: option_a,F22: a > option_a,Option3: option_a] : ( if_option_a @ ( Option3 = none_a ) @ F12 @ ( F22 @ ( the_a @ Option3 ) ) ) ) ) ).
% option.case_eq_if
thf(fact_97_option_Ocase__eq__if,axiom,
( case_option_a_a
= ( ^ [F12: a,F22: a > a,Option3: option_a] : ( if_a @ ( Option3 = none_a ) @ F12 @ ( F22 @ ( the_a @ Option3 ) ) ) ) ) ).
% option.case_eq_if
thf(fact_98_is__none__bind,axiom,
! [F: option_a,G: a > option_a] :
( ( is_none_a @ ( bind_a_a @ F @ G ) )
= ( ( is_none_a @ F )
| ( is_none_a @ ( G @ ( the_a @ F ) ) ) ) ) ).
% is_none_bind
thf(fact_99_option_Oset__sel,axiom,
! [A: option_option_a] :
( ( A != none_option_a )
=> ( member_option_a @ ( the_option_a @ A ) @ ( set_option_option_a2 @ A ) ) ) ).
% option.set_sel
thf(fact_100_option_Oset__sel,axiom,
! [A: option_a] :
( ( A != none_a )
=> ( member_a @ ( the_a @ A ) @ ( set_option_a2 @ A ) ) ) ).
% option.set_sel
thf(fact_101_is__none__code_I1_J,axiom,
is_none_a @ none_a ).
% is_none_code(1)
thf(fact_102_elem__set,axiom,
! [X: option_a,Xo: option_option_a] :
( ( member_option_a @ X @ ( set_option_option_a2 @ Xo ) )
= ( Xo
= ( some_option_a @ X ) ) ) ).
% elem_set
thf(fact_103_elem__set,axiom,
! [X: a,Xo: option_a] :
( ( member_a @ X @ ( set_option_a2 @ Xo ) )
= ( Xo
= ( some_a @ X ) ) ) ).
% elem_set
thf(fact_104_is__none__code_I2_J,axiom,
! [X: a] :
~ ( is_none_a @ ( some_a @ X ) ) ).
% is_none_code(2)
thf(fact_105_ospec,axiom,
! [A3: option_a,P3: a > $o,X: a] :
( ! [X3: a] :
( ( member_a @ X3 @ ( set_option_a2 @ A3 ) )
=> ( P3 @ X3 ) )
=> ( ( A3
= ( some_a @ X ) )
=> ( P3 @ X ) ) ) ).
% ospec
thf(fact_106_option_Oset__intros,axiom,
! [X22: option_a] : ( member_option_a @ X22 @ ( set_option_option_a2 @ ( some_option_a @ X22 ) ) ) ).
% option.set_intros
thf(fact_107_option_Oset__intros,axiom,
! [X22: a] : ( member_a @ X22 @ ( set_option_a2 @ ( some_a @ X22 ) ) ) ).
% option.set_intros
thf(fact_108_option_Oset__cases,axiom,
! [E: option_a,A: option_option_a] :
( ( member_option_a @ E @ ( set_option_option_a2 @ A ) )
=> ( A
= ( some_option_a @ E ) ) ) ).
% option.set_cases
thf(fact_109_option_Oset__cases,axiom,
! [E: a,A: option_a] :
( ( member_a @ E @ ( set_option_a2 @ A ) )
=> ( A
= ( some_a @ E ) ) ) ).
% option.set_cases
thf(fact_110_bind__option__cong,axiom,
! [X: option_a,Y3: option_a,F: a > option_a,G: a > option_a] :
( ( X = Y3 )
=> ( ! [Z2: a] :
( ( member_a @ Z2 @ ( set_option_a2 @ Y3 ) )
=> ( ( F @ Z2 )
= ( G @ Z2 ) ) )
=> ( ( bind_a_a @ X @ F )
= ( bind_a_a @ Y3 @ G ) ) ) ) ).
% bind_option_cong
thf(fact_111_is__none__simps_I2_J,axiom,
! [X: a] :
~ ( is_none_a @ ( some_a @ X ) ) ).
% is_none_simps(2)
thf(fact_112_Option_Ois__none__def,axiom,
( is_none_a
= ( ^ [X2: option_a] : ( X2 = none_a ) ) ) ).
% Option.is_none_def
thf(fact_113_is__none__simps_I1_J,axiom,
is_none_a @ none_a ).
% is_none_simps(1)
thf(fact_114_set__empty__eq,axiom,
! [Xo: option_option_a] :
( ( ( set_option_option_a2 @ Xo )
= bot_bot_set_option_a )
= ( Xo = none_option_a ) ) ).
% set_empty_eq
thf(fact_115_set__empty__eq,axiom,
! [Xo: option_a] :
( ( ( set_option_a2 @ Xo )
= bot_bot_set_a )
= ( Xo = none_a ) ) ).
% set_empty_eq
thf(fact_116_option_Osimps_I14_J,axiom,
( ( set_option_option_a2 @ none_option_a )
= bot_bot_set_option_a ) ).
% option.simps(14)
thf(fact_117_option_Osimps_I14_J,axiom,
( ( set_option_a2 @ none_a )
= bot_bot_set_a ) ).
% option.simps(14)
thf(fact_118_the__map__option,axiom,
! [X: option_a,F: a > a] :
( ~ ( is_none_a @ X )
=> ( ( the_a @ ( map_option_a_a @ F @ X ) )
= ( F @ ( the_a @ X ) ) ) ) ).
% the_map_option
thf(fact_119_rel__optionI,axiom,
! [X: option_a,Y3: option_a,P3: a > a > $o] :
( ( ( is_none_a @ X )
= ( is_none_a @ Y3 ) )
=> ( ( ~ ( is_none_a @ X )
=> ( ~ ( is_none_a @ Y3 )
=> ( P3 @ ( the_a @ X ) @ ( the_a @ Y3 ) ) ) )
=> ( rel_option_a_a @ P3 @ X @ Y3 ) ) ) ).
% rel_optionI
thf(fact_120_rel__option__None1,axiom,
! [P3: a > a > $o,X: option_a] :
( ( rel_option_a_a @ P3 @ none_a @ X )
= ( X = none_a ) ) ).
% rel_option_None1
thf(fact_121_rel__option__None2,axiom,
! [P3: a > a > $o,X: option_a] :
( ( rel_option_a_a @ P3 @ X @ none_a )
= ( X = none_a ) ) ).
% rel_option_None2
thf(fact_122_map__option__eq__Some,axiom,
! [F: a > a,Xo: option_a,Y3: a] :
( ( ( map_option_a_a @ F @ Xo )
= ( some_a @ Y3 ) )
= ( ? [Z3: a] :
( ( Xo
= ( some_a @ Z3 ) )
& ( ( F @ Z3 )
= Y3 ) ) ) ) ).
% map_option_eq_Some
thf(fact_123_option_Omap__disc__iff,axiom,
! [F: a > a,A: option_a] :
( ( ( map_option_a_a @ F @ A )
= none_a )
= ( A = none_a ) ) ).
% option.map_disc_iff
thf(fact_124_map__option__is__None,axiom,
! [F: a > a,Opt: option_a] :
( ( ( map_option_a_a @ F @ Opt )
= none_a )
= ( Opt = none_a ) ) ).
% map_option_is_None
thf(fact_125_None__eq__map__option__iff,axiom,
! [F: a > a,X: option_a] :
( ( none_a
= ( map_option_a_a @ F @ X ) )
= ( X = none_a ) ) ).
% None_eq_map_option_iff
thf(fact_126_is__none__map__option,axiom,
! [F: a > a,X: option_a] :
( ( is_none_a @ ( map_option_a_a @ F @ X ) )
= ( is_none_a @ X ) ) ).
% is_none_map_option
thf(fact_127_option_Orel__refl,axiom,
! [Ra: a > a > $o,X: option_a] :
( ! [X3: a] : ( Ra @ X3 @ X3 )
=> ( rel_option_a_a @ Ra @ X @ X ) ) ).
% option.rel_refl
thf(fact_128_option_Orel__eq,axiom,
( ( rel_option_a_a
@ ^ [Y5: a,Z4: a] : ( Y5 = Z4 ) )
= ( ^ [Y5: option_a,Z4: option_a] : ( Y5 = Z4 ) ) ) ).
% option.rel_eq
thf(fact_129_option_Orel__inject_I2_J,axiom,
! [R3: a > a > $o,X22: a,Y2: a] :
( ( rel_option_a_a @ R3 @ ( some_a @ X22 ) @ ( some_a @ Y2 ) )
= ( R3 @ X22 @ Y2 ) ) ).
% option.rel_inject(2)
thf(fact_130_option_Orel__intros_I2_J,axiom,
! [R3: a > a > $o,X22: a,Y2: a] :
( ( R3 @ X22 @ Y2 )
=> ( rel_option_a_a @ R3 @ ( some_a @ X22 ) @ ( some_a @ Y2 ) ) ) ).
% option.rel_intros(2)
thf(fact_131_option__rel__Some1,axiom,
! [A3: a > a > $o,X: a,Y3: option_a] :
( ( rel_option_a_a @ A3 @ ( some_a @ X ) @ Y3 )
= ( ? [Y6: a] :
( ( Y3
= ( some_a @ Y6 ) )
& ( A3 @ X @ Y6 ) ) ) ) ).
% option_rel_Some1
thf(fact_132_option__rel__Some2,axiom,
! [A3: a > a > $o,X: option_a,Y3: a] :
( ( rel_option_a_a @ A3 @ X @ ( some_a @ Y3 ) )
= ( ? [X5: a] :
( ( X
= ( some_a @ X5 ) )
& ( A3 @ X5 @ Y3 ) ) ) ) ).
% option_rel_Some2
thf(fact_133_option_Octr__transfer_I1_J,axiom,
! [R3: a > a > $o] : ( rel_option_a_a @ R3 @ none_a @ none_a ) ).
% option.ctr_transfer(1)
thf(fact_134_option_Osimps_I9_J,axiom,
! [F: a > a,X22: a] :
( ( map_option_a_a @ F @ ( some_a @ X22 ) )
= ( some_a @ ( F @ X22 ) ) ) ).
% option.simps(9)
thf(fact_135_map__option__cong,axiom,
! [X: option_a,Y3: option_a,F: a > a,G: a > a] :
( ( X = Y3 )
=> ( ! [A4: a] :
( ( Y3
= ( some_a @ A4 ) )
=> ( ( F @ A4 )
= ( G @ A4 ) ) )
=> ( ( map_option_a_a @ F @ X )
= ( map_option_a_a @ G @ Y3 ) ) ) ) ).
% map_option_cong
thf(fact_136_option_Osimps_I8_J,axiom,
! [F: a > a] :
( ( map_option_a_a @ F @ none_a )
= none_a ) ).
% option.simps(8)
thf(fact_137_rel__option__reflI,axiom,
! [Y3: option_option_a,P3: option_a > option_a > $o] :
( ! [X3: option_a] :
( ( member_option_a @ X3 @ ( set_option_option_a2 @ Y3 ) )
=> ( P3 @ X3 @ X3 ) )
=> ( rel_op4798662380513671176tion_a @ P3 @ Y3 @ Y3 ) ) ).
% rel_option_reflI
thf(fact_138_rel__option__reflI,axiom,
! [Y3: option_a,P3: a > a > $o] :
( ! [X3: a] :
( ( member_a @ X3 @ ( set_option_a2 @ Y3 ) )
=> ( P3 @ X3 @ X3 ) )
=> ( rel_option_a_a @ P3 @ Y3 @ Y3 ) ) ).
% rel_option_reflI
thf(fact_139_option_Orel__refl__strong,axiom,
! [X: option_option_a,Ra: option_a > option_a > $o] :
( ! [Z2: option_a] :
( ( member_option_a @ Z2 @ ( set_option_option_a2 @ X ) )
=> ( Ra @ Z2 @ Z2 ) )
=> ( rel_op4798662380513671176tion_a @ Ra @ X @ X ) ) ).
% option.rel_refl_strong
thf(fact_140_option_Orel__refl__strong,axiom,
! [X: option_a,Ra: a > a > $o] :
( ! [Z2: a] :
( ( member_a @ Z2 @ ( set_option_a2 @ X ) )
=> ( Ra @ Z2 @ Z2 ) )
=> ( rel_option_a_a @ Ra @ X @ X ) ) ).
% option.rel_refl_strong
thf(fact_141_option_Orel__mono__strong,axiom,
! [R3: option_a > option_a > $o,X: option_option_a,Y3: option_option_a,Ra: option_a > option_a > $o] :
( ( rel_op4798662380513671176tion_a @ R3 @ X @ Y3 )
=> ( ! [Z2: option_a,Yb: option_a] :
( ( member_option_a @ Z2 @ ( set_option_option_a2 @ X ) )
=> ( ( member_option_a @ Yb @ ( set_option_option_a2 @ Y3 ) )
=> ( ( R3 @ Z2 @ Yb )
=> ( Ra @ Z2 @ Yb ) ) ) )
=> ( rel_op4798662380513671176tion_a @ Ra @ X @ Y3 ) ) ) ).
% option.rel_mono_strong
thf(fact_142_option_Orel__mono__strong,axiom,
! [R3: option_a > a > $o,X: option_option_a,Y3: option_a,Ra: option_a > a > $o] :
( ( rel_op3736390606718109634on_a_a @ R3 @ X @ Y3 )
=> ( ! [Z2: option_a,Yb: a] :
( ( member_option_a @ Z2 @ ( set_option_option_a2 @ X ) )
=> ( ( member_a @ Yb @ ( set_option_a2 @ Y3 ) )
=> ( ( R3 @ Z2 @ Yb )
=> ( Ra @ Z2 @ Yb ) ) ) )
=> ( rel_op3736390606718109634on_a_a @ Ra @ X @ Y3 ) ) ) ).
% option.rel_mono_strong
thf(fact_143_option_Orel__mono__strong,axiom,
! [R3: a > option_a > $o,X: option_a,Y3: option_option_a,Ra: a > option_a > $o] :
( ( rel_op1513876725179314510tion_a @ R3 @ X @ Y3 )
=> ( ! [Z2: a,Yb: option_a] :
( ( member_a @ Z2 @ ( set_option_a2 @ X ) )
=> ( ( member_option_a @ Yb @ ( set_option_option_a2 @ Y3 ) )
=> ( ( R3 @ Z2 @ Yb )
=> ( Ra @ Z2 @ Yb ) ) ) )
=> ( rel_op1513876725179314510tion_a @ Ra @ X @ Y3 ) ) ) ).
% option.rel_mono_strong
thf(fact_144_option_Orel__mono__strong,axiom,
! [R3: a > a > $o,X: option_a,Y3: option_a,Ra: a > a > $o] :
( ( rel_option_a_a @ R3 @ X @ Y3 )
=> ( ! [Z2: a,Yb: a] :
( ( member_a @ Z2 @ ( set_option_a2 @ X ) )
=> ( ( member_a @ Yb @ ( set_option_a2 @ Y3 ) )
=> ( ( R3 @ Z2 @ Yb )
=> ( Ra @ Z2 @ Yb ) ) ) )
=> ( rel_option_a_a @ Ra @ X @ Y3 ) ) ) ).
% option.rel_mono_strong
thf(fact_145_option_Orel__cong,axiom,
! [X: option_option_a,Ya: option_option_a,Y3: option_option_a,Xa: option_option_a,R3: option_a > option_a > $o,Ra: option_a > option_a > $o] :
( ( X = Ya )
=> ( ( Y3 = Xa )
=> ( ! [Z2: option_a,Yb: option_a] :
( ( member_option_a @ Z2 @ ( set_option_option_a2 @ Ya ) )
=> ( ( member_option_a @ Yb @ ( set_option_option_a2 @ Xa ) )
=> ( ( R3 @ Z2 @ Yb )
= ( Ra @ Z2 @ Yb ) ) ) )
=> ( ( rel_op4798662380513671176tion_a @ R3 @ X @ Y3 )
= ( rel_op4798662380513671176tion_a @ Ra @ Ya @ Xa ) ) ) ) ) ).
% option.rel_cong
thf(fact_146_option_Orel__cong,axiom,
! [X: option_option_a,Ya: option_option_a,Y3: option_a,Xa: option_a,R3: option_a > a > $o,Ra: option_a > a > $o] :
( ( X = Ya )
=> ( ( Y3 = Xa )
=> ( ! [Z2: option_a,Yb: a] :
( ( member_option_a @ Z2 @ ( set_option_option_a2 @ Ya ) )
=> ( ( member_a @ Yb @ ( set_option_a2 @ Xa ) )
=> ( ( R3 @ Z2 @ Yb )
= ( Ra @ Z2 @ Yb ) ) ) )
=> ( ( rel_op3736390606718109634on_a_a @ R3 @ X @ Y3 )
= ( rel_op3736390606718109634on_a_a @ Ra @ Ya @ Xa ) ) ) ) ) ).
% option.rel_cong
thf(fact_147_option_Orel__cong,axiom,
! [X: option_a,Ya: option_a,Y3: option_option_a,Xa: option_option_a,R3: a > option_a > $o,Ra: a > option_a > $o] :
( ( X = Ya )
=> ( ( Y3 = Xa )
=> ( ! [Z2: a,Yb: option_a] :
( ( member_a @ Z2 @ ( set_option_a2 @ Ya ) )
=> ( ( member_option_a @ Yb @ ( set_option_option_a2 @ Xa ) )
=> ( ( R3 @ Z2 @ Yb )
= ( Ra @ Z2 @ Yb ) ) ) )
=> ( ( rel_op1513876725179314510tion_a @ R3 @ X @ Y3 )
= ( rel_op1513876725179314510tion_a @ Ra @ Ya @ Xa ) ) ) ) ) ).
% option.rel_cong
thf(fact_148_option_Orel__cong,axiom,
! [X: option_a,Ya: option_a,Y3: option_a,Xa: option_a,R3: a > a > $o,Ra: a > a > $o] :
( ( X = Ya )
=> ( ( Y3 = Xa )
=> ( ! [Z2: a,Yb: a] :
( ( member_a @ Z2 @ ( set_option_a2 @ Ya ) )
=> ( ( member_a @ Yb @ ( set_option_a2 @ Xa ) )
=> ( ( R3 @ Z2 @ Yb )
= ( Ra @ Z2 @ Yb ) ) ) )
=> ( ( rel_option_a_a @ R3 @ X @ Y3 )
= ( rel_option_a_a @ Ra @ Ya @ Xa ) ) ) ) ) ).
% option.rel_cong
thf(fact_149_map__option__idI,axiom,
! [X: option_option_a,F: option_a > option_a] :
( ! [Y4: option_a] :
( ( member_option_a @ Y4 @ ( set_option_option_a2 @ X ) )
=> ( ( F @ Y4 )
= Y4 ) )
=> ( ( map_op788413144570152203tion_a @ F @ X )
= X ) ) ).
% map_option_idI
thf(fact_150_map__option__idI,axiom,
! [X: option_a,F: a > a] :
( ! [Y4: a] :
( ( member_a @ Y4 @ ( set_option_a2 @ X ) )
=> ( ( F @ Y4 )
= Y4 ) )
=> ( ( map_option_a_a @ F @ X )
= X ) ) ).
% map_option_idI
thf(fact_151_option_Omap__ident__strong,axiom,
! [T: option_option_a,F: option_a > option_a] :
( ! [Z2: option_a] :
( ( member_option_a @ Z2 @ ( set_option_option_a2 @ T ) )
=> ( ( F @ Z2 )
= Z2 ) )
=> ( ( map_op788413144570152203tion_a @ F @ T )
= T ) ) ).
% option.map_ident_strong
thf(fact_152_option_Omap__ident__strong,axiom,
! [T: option_a,F: a > a] :
( ! [Z2: a] :
( ( member_a @ Z2 @ ( set_option_a2 @ T ) )
=> ( ( F @ Z2 )
= Z2 ) )
=> ( ( map_option_a_a @ F @ T )
= T ) ) ).
% option.map_ident_strong
thf(fact_153_option_Oinj__map__strong,axiom,
! [X: option_a,Xa: option_a,F: a > a,Fa: a > a] :
( ! [Z2: a,Za: a] :
( ( member_a @ Z2 @ ( set_option_a2 @ X ) )
=> ( ( member_a @ Za @ ( set_option_a2 @ Xa ) )
=> ( ( ( F @ Z2 )
= ( Fa @ Za ) )
=> ( Z2 = Za ) ) ) )
=> ( ( ( map_option_a_a @ F @ X )
= ( map_option_a_a @ Fa @ Xa ) )
=> ( X = Xa ) ) ) ).
% option.inj_map_strong
thf(fact_154_option_Omap__cong0,axiom,
! [X: option_a,F: a > a,G: a > a] :
( ! [Z2: a] :
( ( member_a @ Z2 @ ( set_option_a2 @ X ) )
=> ( ( F @ Z2 )
= ( G @ Z2 ) ) )
=> ( ( map_option_a_a @ F @ X )
= ( map_option_a_a @ G @ X ) ) ) ).
% option.map_cong0
thf(fact_155_option_Omap__cong,axiom,
! [X: option_a,Ya: option_a,F: a > a,G: a > a] :
( ( X = Ya )
=> ( ! [Z2: a] :
( ( member_a @ Z2 @ ( set_option_a2 @ Ya ) )
=> ( ( F @ Z2 )
= ( G @ Z2 ) ) )
=> ( ( map_option_a_a @ F @ X )
= ( map_option_a_a @ G @ Ya ) ) ) ) ).
% option.map_cong
thf(fact_156_option_Orel__distinct_I2_J,axiom,
! [R3: a > a > $o,Y2: a] :
~ ( rel_option_a_a @ R3 @ ( some_a @ Y2 ) @ none_a ) ).
% option.rel_distinct(2)
thf(fact_157_option_Orel__distinct_I1_J,axiom,
! [R3: a > a > $o,Y2: a] :
~ ( rel_option_a_a @ R3 @ none_a @ ( some_a @ Y2 ) ) ).
% option.rel_distinct(1)
thf(fact_158_option_Orel__cases,axiom,
! [R3: a > a > $o,A: option_a,B: option_a] :
( ( rel_option_a_a @ R3 @ A @ B )
=> ( ( ( A = none_a )
=> ( B != none_a ) )
=> ~ ! [X3: a] :
( ( A
= ( some_a @ X3 ) )
=> ! [Y4: a] :
( ( B
= ( some_a @ Y4 ) )
=> ~ ( R3 @ X3 @ Y4 ) ) ) ) ) ).
% option.rel_cases
thf(fact_159_option_Orel__induct,axiom,
! [R3: a > a > $o,X: option_a,Y3: option_a,Q3: option_a > option_a > $o] :
( ( rel_option_a_a @ R3 @ X @ Y3 )
=> ( ( Q3 @ none_a @ none_a )
=> ( ! [A22: a,B22: a] :
( ( R3 @ A22 @ B22 )
=> ( Q3 @ ( some_a @ A22 ) @ ( some_a @ B22 ) ) )
=> ( Q3 @ X @ Y3 ) ) ) ) ).
% option.rel_induct
thf(fact_160_option_Orel__sel,axiom,
( rel_option_a_a
= ( ^ [R4: a > a > $o,A2: option_a,B2: option_a] :
( ( ( A2 = none_a )
= ( B2 = none_a ) )
& ( ( A2 != none_a )
=> ( ( B2 != none_a )
=> ( R4 @ ( the_a @ A2 ) @ ( the_a @ B2 ) ) ) ) ) ) ) ).
% option.rel_sel
thf(fact_161_option_Omap__sel,axiom,
! [A: option_a,F: a > a] :
( ( A != none_a )
=> ( ( the_a @ ( map_option_a_a @ F @ A ) )
= ( F @ ( the_a @ A ) ) ) ) ).
% option.map_sel
thf(fact_162_rel__option__unfold,axiom,
( rel_option_a_a
= ( ^ [R4: a > a > $o,X2: option_a,Y: option_a] :
( ( ( is_none_a @ X2 )
= ( is_none_a @ Y ) )
& ( ~ ( is_none_a @ X2 )
=> ( ~ ( is_none_a @ Y )
=> ( R4 @ ( the_a @ X2 ) @ ( the_a @ Y ) ) ) ) ) ) ) ).
% rel_option_unfold
thf(fact_163_option_Osimps_I15_J,axiom,
! [X22: option_a] :
( ( set_option_option_a2 @ ( some_option_a @ X22 ) )
= ( insert_option_a @ X22 @ bot_bot_set_option_a ) ) ).
% option.simps(15)
thf(fact_164_option_Osimps_I15_J,axiom,
! [X22: a] :
( ( set_option_a2 @ ( some_a @ X22 ) )
= ( insert_a @ X22 @ bot_bot_set_a ) ) ).
% option.simps(15)
thf(fact_165_map__conv__bind__option,axiom,
( map_option_a_a
= ( ^ [F3: a > a,X2: option_a] : ( bind_a_a @ X2 @ ( comp_a_option_a_a @ some_a @ F3 ) ) ) ) ).
% map_conv_bind_option
thf(fact_166_case__map__option,axiom,
! [G: a,H: option_a > a,F: a > option_a,X: option_a] :
( ( case_o926465512965637841tion_a @ G @ H @ ( map_op2340691886215429841tion_a @ F @ X ) )
= ( case_option_a_a @ G @ ( comp_option_a_a_a @ H @ F ) @ X ) ) ).
% case_map_option
thf(fact_167_case__map__option,axiom,
! [G: $o,H: a > $o,F: a > a,X: option_a] :
( ( case_option_o_a @ G @ H @ ( map_option_a_a @ F @ X ) )
= ( case_option_o_a @ G @ ( comp_a_o_a @ H @ F ) @ X ) ) ).
% case_map_option
thf(fact_168_case__map__option,axiom,
! [G: option_a,H: a > option_a,F: a > a,X: option_a] :
( ( case_o3148979394504432965on_a_a @ G @ H @ ( map_option_a_a @ F @ X ) )
= ( case_o3148979394504432965on_a_a @ G @ ( comp_a_option_a_a @ H @ F ) @ X ) ) ).
% case_map_option
thf(fact_169_case__map__option,axiom,
! [G: a,H: a > a,F: a > a,X: option_a] :
( ( case_option_a_a @ G @ H @ ( map_option_a_a @ F @ X ) )
= ( case_option_a_a @ G @ ( comp_a_a_a @ H @ F ) @ X ) ) ).
% case_map_option
thf(fact_170_map__option_Ocomp,axiom,
! [F: option_a > a,G: a > option_a] :
( ( comp_o1254687777855551975tion_a @ ( map_op4563205767754224965on_a_a @ F ) @ ( map_op2340691886215429841tion_a @ G ) )
= ( map_option_a_a @ ( comp_option_a_a_a @ F @ G ) ) ) ).
% map_option.comp
thf(fact_171_map__option_Ocomp,axiom,
! [F: a > a,G: a > a] :
( ( comp_o3154387707078715297tion_a @ ( map_option_a_a @ F ) @ ( map_option_a_a @ G ) )
= ( map_option_a_a @ ( comp_a_a_a @ F @ G ) ) ) ).
% map_option.comp
thf(fact_172_option_Omap__comp,axiom,
! [G: option_a > a,F: a > option_a,V2: option_a] :
( ( map_op4563205767754224965on_a_a @ G @ ( map_op2340691886215429841tion_a @ F @ V2 ) )
= ( map_option_a_a @ ( comp_option_a_a_a @ G @ F ) @ V2 ) ) ).
% option.map_comp
thf(fact_173_option_Omap__comp,axiom,
! [G: a > a,F: a > a,V2: option_a] :
( ( map_option_a_a @ G @ ( map_option_a_a @ F @ V2 ) )
= ( map_option_a_a @ ( comp_a_a_a @ G @ F ) @ V2 ) ) ).
% option.map_comp
thf(fact_174_map__option_Ocompositionality,axiom,
! [F: option_a > a,G: a > option_a,Option: option_a] :
( ( map_op4563205767754224965on_a_a @ F @ ( map_op2340691886215429841tion_a @ G @ Option ) )
= ( map_option_a_a @ ( comp_option_a_a_a @ F @ G ) @ Option ) ) ).
% map_option.compositionality
thf(fact_175_map__option_Ocompositionality,axiom,
! [F: a > a,G: a > a,Option: option_a] :
( ( map_option_a_a @ F @ ( map_option_a_a @ G @ Option ) )
= ( map_option_a_a @ ( comp_a_a_a @ F @ G ) @ Option ) ) ).
% map_option.compositionality
thf(fact_176_bind__map__option,axiom,
! [F: a > a,X: option_a,G: a > option_a] :
( ( bind_a_a @ ( map_option_a_a @ F @ X ) @ G )
= ( bind_a_a @ X @ ( comp_a_option_a_a @ G @ F ) ) ) ).
% bind_map_option
thf(fact_177_map__option__bind,axiom,
! [F: a > a,X: option_a,G: a > option_a] :
( ( map_option_a_a @ F @ ( bind_a_a @ X @ G ) )
= ( bind_a_a @ X @ ( comp_o6087033147929006299on_a_a @ ( map_option_a_a @ F ) @ G ) ) ) ).
% map_option_bind
thf(fact_178_these__insert__Some,axiom,
! [X: option_a,A3: set_option_option_a] :
( ( these_option_a @ ( insert605063979879581146tion_a @ ( some_option_a @ X ) @ A3 ) )
= ( insert_option_a @ X @ ( these_option_a @ A3 ) ) ) ).
% these_insert_Some
thf(fact_179_these__insert__Some,axiom,
! [X: a,A3: set_option_a] :
( ( these_a @ ( insert_option_a @ ( some_a @ X ) @ A3 ) )
= ( insert_a @ X @ ( these_a @ A3 ) ) ) ).
% these_insert_Some
thf(fact_180_comp__the__Some,axiom,
( ( comp_option_a_a_a @ the_a @ some_a )
= id_a ) ).
% comp_the_Some
thf(fact_181_these__not__empty__eq,axiom,
! [B4: set_option_option_a] :
( ( ( these_option_a @ B4 )
!= bot_bot_set_option_a )
= ( ( B4 != bot_bo4163488203964334806tion_a )
& ( B4
!= ( insert605063979879581146tion_a @ none_option_a @ bot_bo4163488203964334806tion_a ) ) ) ) ).
% these_not_empty_eq
thf(fact_182_these__not__empty__eq,axiom,
! [B4: set_option_a] :
( ( ( these_a @ B4 )
!= bot_bot_set_a )
= ( ( B4 != bot_bot_set_option_a )
& ( B4
!= ( insert_option_a @ none_a @ bot_bot_set_option_a ) ) ) ) ).
% these_not_empty_eq
thf(fact_183_these__empty__eq,axiom,
! [B4: set_option_option_a] :
( ( ( these_option_a @ B4 )
= bot_bot_set_option_a )
= ( ( B4 = bot_bo4163488203964334806tion_a )
| ( B4
= ( insert605063979879581146tion_a @ none_option_a @ bot_bo4163488203964334806tion_a ) ) ) ) ).
% these_empty_eq
thf(fact_184_these__empty__eq,axiom,
! [B4: set_option_a] :
( ( ( these_a @ B4 )
= bot_bot_set_a )
= ( ( B4 = bot_bot_set_option_a )
| ( B4
= ( insert_option_a @ none_a @ bot_bot_set_option_a ) ) ) ) ).
% these_empty_eq
thf(fact_185_these__empty,axiom,
( ( these_option_a @ bot_bo4163488203964334806tion_a )
= bot_bot_set_option_a ) ).
% these_empty
thf(fact_186_these__empty,axiom,
( ( these_a @ bot_bot_set_option_a )
= bot_bot_set_a ) ).
% these_empty
thf(fact_187_these__insert__None,axiom,
! [A3: set_option_a] :
( ( these_a @ ( insert_option_a @ none_a @ A3 ) )
= ( these_a @ A3 ) ) ).
% these_insert_None
thf(fact_188_option_Omap__id0,axiom,
( ( map_option_a_a @ id_a )
= id_option_a ) ).
% option.map_id0
thf(fact_189_option_Omap__id,axiom,
! [T: option_a] :
( ( map_option_a_a @ id_a @ T )
= T ) ).
% option.map_id
thf(fact_190_in__these__eq,axiom,
! [X: option_a,A3: set_option_option_a] :
( ( member_option_a @ X @ ( these_option_a @ A3 ) )
= ( member5113800082084363315tion_a @ ( some_option_a @ X ) @ A3 ) ) ).
% in_these_eq
thf(fact_191_in__these__eq,axiom,
! [X: a,A3: set_option_a] :
( ( member_a @ X @ ( these_a @ A3 ) )
= ( member_option_a @ ( some_a @ X ) @ A3 ) ) ).
% in_these_eq
thf(fact_192_option_Osize__gen__o__map,axiom,
! [F: a > nat,G: a > a] :
( ( comp_o8583038678572498833tion_a @ ( size_option_a @ F ) @ ( map_option_a_a @ G ) )
= ( size_option_a @ ( comp_a_nat_a @ F @ G ) ) ) ).
% option.size_gen_o_map
thf(fact_193_restrict__map__to__empty,axiom,
! [M: a > option_a] :
( ( restrict_map_a_a @ M @ bot_bot_set_a )
= ( ^ [X2: a] : none_a ) ) ).
% restrict_map_to_empty
thf(fact_194_restrict__map__to__empty,axiom,
! [M: option_a > option_a] :
( ( restri3984065703976872170on_a_a @ M @ bot_bot_set_option_a )
= ( ^ [X2: option_a] : none_a ) ) ).
% restrict_map_to_empty
thf(fact_195_these__image__Some__eq,axiom,
! [A3: set_a] :
( ( these_a @ ( image_a_option_a @ some_a @ A3 ) )
= A3 ) ).
% these_image_Some_eq
thf(fact_196_fun__upd__None__if__notin__dom,axiom,
! [K: a,M: a > option_a] :
( ~ ( member_a @ K @ ( dom_a_a @ M ) )
=> ( ( fun_upd_a_option_a @ M @ K @ none_a )
= M ) ) ).
% fun_upd_None_if_notin_dom
thf(fact_197_fun__upd__None__if__notin__dom,axiom,
! [K: option_a,M: option_a > option_a] :
( ~ ( member_option_a @ K @ ( dom_option_a_a @ M ) )
=> ( ( fun_up1079276522633388797tion_a @ M @ K @ none_a )
= M ) ) ).
% fun_upd_None_if_notin_dom
thf(fact_198_restrict__out,axiom,
! [X: a,A3: set_a,M: a > option_a] :
( ~ ( member_a @ X @ A3 )
=> ( ( restrict_map_a_a @ M @ A3 @ X )
= none_a ) ) ).
% restrict_out
thf(fact_199_restrict__out,axiom,
! [X: option_a,A3: set_option_a,M: option_a > option_a] :
( ~ ( member_option_a @ X @ A3 )
=> ( ( restri3984065703976872170on_a_a @ M @ A3 @ X )
= none_a ) ) ).
% restrict_out
thf(fact_200_dom__eq__empty__conv,axiom,
! [F: a > option_a] :
( ( ( dom_a_a @ F )
= bot_bot_set_a )
= ( F
= ( ^ [X2: a] : none_a ) ) ) ).
% dom_eq_empty_conv
thf(fact_201_dom__eq__empty__conv,axiom,
! [F: option_a > option_a] :
( ( ( dom_option_a_a @ F )
= bot_bot_set_option_a )
= ( F
= ( ^ [X2: option_a] : none_a ) ) ) ).
% dom_eq_empty_conv
thf(fact_202_image__map__upd,axiom,
! [X: a,A3: set_a,M: a > option_a,Y3: a] :
( ~ ( member_a @ X @ A3 )
=> ( ( image_a_option_a @ ( fun_upd_a_option_a @ M @ X @ ( some_a @ Y3 ) ) @ A3 )
= ( image_a_option_a @ M @ A3 ) ) ) ).
% image_map_upd
thf(fact_203_image__map__upd,axiom,
! [X: option_a,A3: set_option_a,M: option_a > option_a,Y3: a] :
( ~ ( member_option_a @ X @ A3 )
=> ( ( image_7439109396645324421tion_a @ ( fun_up1079276522633388797tion_a @ M @ X @ ( some_a @ Y3 ) ) @ A3 )
= ( image_7439109396645324421tion_a @ M @ A3 ) ) ) ).
% image_map_upd
thf(fact_204_map__add__upd__left,axiom,
! [M: a,E2: a > option_a,E1: a > option_a,U1: a] :
( ~ ( member_a @ M @ ( dom_a_a @ E2 ) )
=> ( ( map_add_a_a @ ( fun_upd_a_option_a @ E1 @ M @ ( some_a @ U1 ) ) @ E2 )
= ( fun_upd_a_option_a @ ( map_add_a_a @ E1 @ E2 ) @ M @ ( some_a @ U1 ) ) ) ) ).
% map_add_upd_left
thf(fact_205_map__add__upd__left,axiom,
! [M: option_a,E2: option_a > option_a,E1: option_a > option_a,U1: a] :
( ~ ( member_option_a @ M @ ( dom_option_a_a @ E2 ) )
=> ( ( map_add_option_a_a @ ( fun_up1079276522633388797tion_a @ E1 @ M @ ( some_a @ U1 ) ) @ E2 )
= ( fun_up1079276522633388797tion_a @ ( map_add_option_a_a @ E1 @ E2 ) @ M @ ( some_a @ U1 ) ) ) ) ).
% map_add_upd_left
thf(fact_206_domD,axiom,
! [A: a,M: a > option_a] :
( ( member_a @ A @ ( dom_a_a @ M ) )
=> ? [B3: a] :
( ( M @ A )
= ( some_a @ B3 ) ) ) ).
% domD
thf(fact_207_domD,axiom,
! [A: option_a,M: option_a > option_a] :
( ( member_option_a @ A @ ( dom_option_a_a @ M ) )
=> ? [B3: a] :
( ( M @ A )
= ( some_a @ B3 ) ) ) ).
% domD
thf(fact_208_domI,axiom,
! [M: a > option_a,A: a,B: a] :
( ( ( M @ A )
= ( some_a @ B ) )
=> ( member_a @ A @ ( dom_a_a @ M ) ) ) ).
% domI
thf(fact_209_domI,axiom,
! [M: option_a > option_a,A: option_a,B: a] :
( ( ( M @ A )
= ( some_a @ B ) )
=> ( member_option_a @ A @ ( dom_option_a_a @ M ) ) ) ).
% domI
thf(fact_210_domIff,axiom,
! [A: a,M: a > option_a] :
( ( member_a @ A @ ( dom_a_a @ M ) )
= ( ( M @ A )
!= none_a ) ) ).
% domIff
thf(fact_211_domIff,axiom,
! [A: option_a,M: option_a > option_a] :
( ( member_option_a @ A @ ( dom_option_a_a @ M ) )
= ( ( M @ A )
!= none_a ) ) ).
% domIff
thf(fact_212_restrict__map__def,axiom,
( restrict_map_a_a
= ( ^ [M2: a > option_a,A5: set_a,X2: a] : ( if_option_a @ ( member_a @ X2 @ A5 ) @ ( M2 @ X2 ) @ none_a ) ) ) ).
% restrict_map_def
thf(fact_213_restrict__map__def,axiom,
( restri3984065703976872170on_a_a
= ( ^ [M2: option_a > option_a,A5: set_option_a,X2: option_a] : ( if_option_a @ ( member_option_a @ X2 @ A5 ) @ ( M2 @ X2 ) @ none_a ) ) ) ).
% restrict_map_def
thf(fact_214_insert__dom,axiom,
! [F: a > option_a,X: a,Y3: a] :
( ( ( F @ X )
= ( some_a @ Y3 ) )
=> ( ( insert_a @ X @ ( dom_a_a @ F ) )
= ( dom_a_a @ F ) ) ) ).
% insert_dom
thf(fact_215_insert__dom,axiom,
! [F: option_a > option_a,X: option_a,Y3: a] :
( ( ( F @ X )
= ( some_a @ Y3 ) )
=> ( ( insert_option_a @ X @ ( dom_option_a_a @ F ) )
= ( dom_option_a_a @ F ) ) ) ).
% insert_dom
thf(fact_216_None__notin__image__Some,axiom,
! [A3: set_a] :
~ ( member_option_a @ none_a @ ( image_a_option_a @ some_a @ A3 ) ) ).
% None_notin_image_Some
thf(fact_217_option_Oset__map,axiom,
! [F: a > option_a,V2: option_a] :
( ( set_option_option_a2 @ ( map_op2340691886215429841tion_a @ F @ V2 ) )
= ( image_a_option_a @ F @ ( set_option_a2 @ V2 ) ) ) ).
% option.set_map
thf(fact_218_option_Oset__map,axiom,
! [F: option_a > a,V2: option_option_a] :
( ( set_option_a2 @ ( map_op4563205767754224965on_a_a @ F @ V2 ) )
= ( image_option_a_a @ F @ ( set_option_option_a2 @ V2 ) ) ) ).
% option.set_map
thf(fact_219_option_Oset__map,axiom,
! [F: a > a,V2: option_a] :
( ( set_option_a2 @ ( map_option_a_a @ F @ V2 ) )
= ( image_a_a @ F @ ( set_option_a2 @ V2 ) ) ) ).
% option.set_map
thf(fact_220_restrict__upd__same,axiom,
! [M: a > option_a,X: a,Y3: a] :
( ( restrict_map_a_a @ ( fun_upd_a_option_a @ M @ X @ ( some_a @ Y3 ) ) @ ( uminus_uminus_set_a @ ( insert_a @ X @ bot_bot_set_a ) ) )
= ( restrict_map_a_a @ M @ ( uminus_uminus_set_a @ ( insert_a @ X @ bot_bot_set_a ) ) ) ) ).
% restrict_upd_same
thf(fact_221_restrict__upd__same,axiom,
! [M: option_a > option_a,X: option_a,Y3: a] :
( ( restri3984065703976872170on_a_a @ ( fun_up1079276522633388797tion_a @ M @ X @ ( some_a @ Y3 ) ) @ ( uminus6205308855922866075tion_a @ ( insert_option_a @ X @ bot_bot_set_option_a ) ) )
= ( restri3984065703976872170on_a_a @ M @ ( uminus6205308855922866075tion_a @ ( insert_option_a @ X @ bot_bot_set_option_a ) ) ) ) ).
% restrict_upd_same
thf(fact_222_fun__upd__None__restrict,axiom,
! [X: a,D: set_a,M: a > option_a] :
( ( ( member_a @ X @ D )
=> ( ( fun_upd_a_option_a @ ( restrict_map_a_a @ M @ D ) @ X @ none_a )
= ( restrict_map_a_a @ M @ ( minus_minus_set_a @ D @ ( insert_a @ X @ bot_bot_set_a ) ) ) ) )
& ( ~ ( member_a @ X @ D )
=> ( ( fun_upd_a_option_a @ ( restrict_map_a_a @ M @ D ) @ X @ none_a )
= ( restrict_map_a_a @ M @ D ) ) ) ) ).
% fun_upd_None_restrict
thf(fact_223_fun__upd__None__restrict,axiom,
! [X: option_a,D: set_option_a,M: option_a > option_a] :
( ( ( member_option_a @ X @ D )
=> ( ( fun_up1079276522633388797tion_a @ ( restri3984065703976872170on_a_a @ M @ D ) @ X @ none_a )
= ( restri3984065703976872170on_a_a @ M @ ( minus_1574173051537231627tion_a @ D @ ( insert_option_a @ X @ bot_bot_set_option_a ) ) ) ) )
& ( ~ ( member_option_a @ X @ D )
=> ( ( fun_up1079276522633388797tion_a @ ( restri3984065703976872170on_a_a @ M @ D ) @ X @ none_a )
= ( restri3984065703976872170on_a_a @ M @ D ) ) ) ) ).
% fun_upd_None_restrict
thf(fact_224_dom__fun__upd,axiom,
! [Y3: option_a,F: a > option_a,X: a] :
( ( ( Y3 = none_a )
=> ( ( dom_a_a @ ( fun_upd_a_option_a @ F @ X @ Y3 ) )
= ( minus_minus_set_a @ ( dom_a_a @ F ) @ ( insert_a @ X @ bot_bot_set_a ) ) ) )
& ( ( Y3 != none_a )
=> ( ( dom_a_a @ ( fun_upd_a_option_a @ F @ X @ Y3 ) )
= ( insert_a @ X @ ( dom_a_a @ F ) ) ) ) ) ).
% dom_fun_upd
thf(fact_225_dom__fun__upd,axiom,
! [Y3: option_a,F: option_a > option_a,X: option_a] :
( ( ( Y3 = none_a )
=> ( ( dom_option_a_a @ ( fun_up1079276522633388797tion_a @ F @ X @ Y3 ) )
= ( minus_1574173051537231627tion_a @ ( dom_option_a_a @ F ) @ ( insert_option_a @ X @ bot_bot_set_option_a ) ) ) )
& ( ( Y3 != none_a )
=> ( ( dom_option_a_a @ ( fun_up1079276522633388797tion_a @ F @ X @ Y3 ) )
= ( insert_option_a @ X @ ( dom_option_a_a @ F ) ) ) ) ) ).
% dom_fun_upd
thf(fact_226_restrict__complement__singleton__eq,axiom,
! [F: a > option_a,X: a] :
( ( restrict_map_a_a @ F @ ( uminus_uminus_set_a @ ( insert_a @ X @ bot_bot_set_a ) ) )
= ( fun_upd_a_option_a @ F @ X @ none_a ) ) ).
% restrict_complement_singleton_eq
thf(fact_227_restrict__complement__singleton__eq,axiom,
! [F: option_a > option_a,X: option_a] :
( ( restri3984065703976872170on_a_a @ F @ ( uminus6205308855922866075tion_a @ ( insert_option_a @ X @ bot_bot_set_option_a ) ) )
= ( fun_up1079276522633388797tion_a @ F @ X @ none_a ) ) ).
% restrict_complement_singleton_eq
thf(fact_228_notin__range__Some,axiom,
! [X: option_option_a] :
( ( ~ ( member5113800082084363315tion_a @ X @ ( image_2132136900116418507tion_a @ some_option_a @ top_top_set_option_a ) ) )
= ( X = none_option_a ) ) ).
% notin_range_Some
thf(fact_229_notin__range__Some,axiom,
! [X: option_a] :
( ( ~ ( member_option_a @ X @ ( image_a_option_a @ some_a @ top_top_set_a ) ) )
= ( X = none_a ) ) ).
% notin_range_Some
thf(fact_230_dom__minus,axiom,
! [F: a > option_a,X: a,A3: set_a] :
( ( ( F @ X )
= none_a )
=> ( ( minus_minus_set_a @ ( dom_a_a @ F ) @ ( insert_a @ X @ A3 ) )
= ( minus_minus_set_a @ ( dom_a_a @ F ) @ A3 ) ) ) ).
% dom_minus
thf(fact_231_dom__minus,axiom,
! [F: option_a > option_a,X: option_a,A3: set_option_a] :
( ( ( F @ X )
= none_a )
=> ( ( minus_1574173051537231627tion_a @ ( dom_option_a_a @ F ) @ ( insert_option_a @ X @ A3 ) )
= ( minus_1574173051537231627tion_a @ ( dom_option_a_a @ F ) @ A3 ) ) ) ).
% dom_minus
thf(fact_232_UNIV__option__conv,axiom,
( top_to1659475022456381882tion_a
= ( insert605063979879581146tion_a @ none_option_a @ ( image_2132136900116418507tion_a @ some_option_a @ top_top_set_option_a ) ) ) ).
% UNIV_option_conv
thf(fact_233_UNIV__option__conv,axiom,
( top_top_set_option_a
= ( insert_option_a @ none_a @ ( image_a_option_a @ some_a @ top_top_set_a ) ) ) ).
% UNIV_option_conv
thf(fact_234_finite__range__updI,axiom,
! [F: a > option_a,A: a,B: a] :
( ( finite1674126218327898605tion_a @ ( image_a_option_a @ F @ top_top_set_a ) )
=> ( finite1674126218327898605tion_a @ ( image_a_option_a @ ( fun_upd_a_option_a @ F @ A @ ( some_a @ B ) ) @ top_top_set_a ) ) ) ).
% finite_range_updI
thf(fact_235_finite__range__updI,axiom,
! [F: option_a > option_a,A: option_a,B: a] :
( ( finite1674126218327898605tion_a @ ( image_7439109396645324421tion_a @ F @ top_top_set_option_a ) )
=> ( finite1674126218327898605tion_a @ ( image_7439109396645324421tion_a @ ( fun_up1079276522633388797tion_a @ F @ A @ ( some_a @ B ) ) @ top_top_set_option_a ) ) ) ).
% finite_range_updI
thf(fact_236_ran__map__upd__Some,axiom,
! [M: a > option_a,X: a,Y3: a,Z: a] :
( ( ( M @ X )
= ( some_a @ Y3 ) )
=> ( ( inj_on_a_option_a @ M @ ( dom_a_a @ M ) )
=> ( ~ ( member_a @ Z @ ( ran_a_a @ M ) )
=> ( ( ran_a_a @ ( fun_upd_a_option_a @ M @ X @ ( some_a @ Z ) ) )
= ( sup_sup_set_a @ ( minus_minus_set_a @ ( ran_a_a @ M ) @ ( insert_a @ Y3 @ bot_bot_set_a ) ) @ ( insert_a @ Z @ bot_bot_set_a ) ) ) ) ) ) ).
% ran_map_upd_Some
thf(fact_237_finite__map__freshness,axiom,
! [F: a > option_a] :
( ( finite_finite_a @ ( dom_a_a @ F ) )
=> ( ~ ( finite_finite_a @ top_top_set_a )
=> ? [X3: a] :
( ( F @ X3 )
= none_a ) ) ) ).
% finite_map_freshness
thf(fact_238_finite__map__freshness,axiom,
! [F: option_a > option_a] :
( ( finite1674126218327898605tion_a @ ( dom_option_a_a @ F ) )
=> ( ~ ( finite1674126218327898605tion_a @ top_top_set_option_a )
=> ? [X3: option_a] :
( ( F @ X3 )
= none_a ) ) ) ).
% finite_map_freshness
thf(fact_239_set__bind__option,axiom,
! [X: option_a,F: a > option_a] :
( ( set_option_a2 @ ( bind_a_a @ X @ F ) )
= ( comple2307003609928055243_set_a @ ( image_a_set_a @ ( comp_o6143895765626710849et_a_a @ set_option_a2 @ F ) @ ( set_option_a2 @ X ) ) ) ) ).
% set_bind_option
thf(fact_240_dom__eq__singleton__conv,axiom,
! [F: a > option_a,X: a] :
( ( ( dom_a_a @ F )
= ( insert_a @ X @ bot_bot_set_a ) )
= ( ? [V: a] :
( F
= ( fun_upd_a_option_a
@ ^ [X2: a] : none_a
@ X
@ ( some_a @ V ) ) ) ) ) ).
% dom_eq_singleton_conv
thf(fact_241_dom__eq__singleton__conv,axiom,
! [F: option_a > option_a,X: option_a] :
( ( ( dom_option_a_a @ F )
= ( insert_option_a @ X @ bot_bot_set_option_a ) )
= ( ? [V: a] :
( F
= ( fun_up1079276522633388797tion_a
@ ^ [X2: option_a] : none_a
@ X
@ ( some_a @ V ) ) ) ) ) ).
% dom_eq_singleton_conv
thf(fact_242_bind__assoc,axiom,
! [X: option_a,F: a > option_a,G: a > option_a] :
( ( bind_a_a @ ( bind_a_a @ X @ F ) @ G )
= ( bind_a_a @ X
@ ^ [Y: a] : ( bind_a_a @ ( F @ Y ) @ G ) ) ) ).
% bind_assoc
thf(fact_243_bind__rzero,axiom,
! [X: option_a] :
( ( bind_a_a @ X
@ ^ [X2: a] : none_a )
= none_a ) ).
% bind_rzero
thf(fact_244_dom__const,axiom,
! [F: a > a] :
( ( dom_a_a
@ ^ [X2: a] : ( some_a @ ( F @ X2 ) ) )
= top_top_set_a ) ).
% dom_const
thf(fact_245_dom__const,axiom,
! [F: option_a > a] :
( ( dom_option_a_a
@ ^ [X2: option_a] : ( some_a @ ( F @ X2 ) ) )
= top_top_set_option_a ) ).
% dom_const
thf(fact_246_dom__empty,axiom,
( ( dom_a_a
@ ^ [X2: a] : none_a )
= bot_bot_set_a ) ).
% dom_empty
thf(fact_247_dom__empty,axiom,
( ( dom_option_a_a
@ ^ [X2: option_a] : none_a )
= bot_bot_set_option_a ) ).
% dom_empty
thf(fact_248_finite__option__UNIV,axiom,
( ( finite8114217219359860531tion_a @ top_to1659475022456381882tion_a )
= ( finite1674126218327898605tion_a @ top_top_set_option_a ) ) ).
% finite_option_UNIV
thf(fact_249_finite__option__UNIV,axiom,
( ( finite1674126218327898605tion_a @ top_top_set_option_a )
= ( finite_finite_a @ top_top_set_a ) ) ).
% finite_option_UNIV
thf(fact_250_option_Oinj__map,axiom,
! [F: a > option_a] :
( ( inj_on_a_option_a @ F @ top_top_set_a )
=> ( inj_on2224753519991154999tion_a @ ( map_op2340691886215429841tion_a @ F ) @ top_top_set_option_a ) ) ).
% option.inj_map
thf(fact_251_option_Oinj__map,axiom,
! [F: a > a] :
( ( inj_on_a_a @ F @ top_top_set_a )
=> ( inj_on8559383841115902449tion_a @ ( map_option_a_a @ F ) @ top_top_set_option_a ) ) ).
% option.inj_map
thf(fact_252_dom__def,axiom,
( dom_option_a_a
= ( ^ [M2: option_a > option_a] :
( collect_option_a
@ ^ [A2: option_a] :
( ( M2 @ A2 )
!= none_a ) ) ) ) ).
% dom_def
thf(fact_253_option_Orel__map_I1_J,axiom,
! [Sb: a > a > $o,I: a > a,X: option_a,Y3: option_a] :
( ( rel_option_a_a @ Sb @ ( map_option_a_a @ I @ X ) @ Y3 )
= ( rel_option_a_a
@ ^ [X2: a] : ( Sb @ ( I @ X2 ) )
@ X
@ Y3 ) ) ).
% option.rel_map(1)
thf(fact_254_option_Orel__map_I2_J,axiom,
! [Sa: a > a > $o,X: option_a,G: a > a,Y3: option_a] :
( ( rel_option_a_a @ Sa @ X @ ( map_option_a_a @ G @ Y3 ) )
= ( rel_option_a_a
@ ^ [X2: a,Y: a] : ( Sa @ X2 @ ( G @ Y ) )
@ X
@ Y3 ) ) ).
% option.rel_map(2)
thf(fact_255_case__optionE,axiom,
! [P3: $o,Q3: a > $o,X: option_a] :
( ( case_option_o_a @ P3 @ Q3 @ X )
=> ( ( ( X = none_a )
=> ~ P3 )
=> ~ ! [Y4: a] :
( ( X
= ( some_a @ Y4 ) )
=> ~ ( Q3 @ Y4 ) ) ) ) ).
% case_optionE
thf(fact_256_option_Omap__ident,axiom,
! [T: option_a] :
( ( map_option_a_a
@ ^ [X2: a] : X2
@ T )
= T ) ).
% option.map_ident
thf(fact_257_option_Odisc__eq__case_I2_J,axiom,
! [Option: option_a] :
( ( Option != none_a )
= ( case_option_o_a @ $false
@ ^ [Uu: a] : $true
@ Option ) ) ).
% option.disc_eq_case(2)
thf(fact_258_option_Odisc__eq__case_I1_J,axiom,
! [Option: option_a] :
( ( Option = none_a )
= ( case_option_o_a @ $true
@ ^ [Uu: a] : $false
@ Option ) ) ).
% option.disc_eq_case(1)
thf(fact_259_option_Ocase__distrib,axiom,
! [H: $o > $o,F1: $o,F2: a > $o,Option: option_a] :
( ( H @ ( case_option_o_a @ F1 @ F2 @ Option ) )
= ( case_option_o_a @ ( H @ F1 )
@ ^ [X2: a] : ( H @ ( F2 @ X2 ) )
@ Option ) ) ).
% option.case_distrib
thf(fact_260_option_Ocase__distrib,axiom,
! [H: $o > option_a,F1: $o,F2: a > $o,Option: option_a] :
( ( H @ ( case_option_o_a @ F1 @ F2 @ Option ) )
= ( case_o3148979394504432965on_a_a @ ( H @ F1 )
@ ^ [X2: a] : ( H @ ( F2 @ X2 ) )
@ Option ) ) ).
% option.case_distrib
thf(fact_261_option_Ocase__distrib,axiom,
! [H: $o > a,F1: $o,F2: a > $o,Option: option_a] :
( ( H @ ( case_option_o_a @ F1 @ F2 @ Option ) )
= ( case_option_a_a @ ( H @ F1 )
@ ^ [X2: a] : ( H @ ( F2 @ X2 ) )
@ Option ) ) ).
% option.case_distrib
thf(fact_262_option_Ocase__distrib,axiom,
! [H: option_a > $o,F1: option_a,F2: a > option_a,Option: option_a] :
( ( H @ ( case_o3148979394504432965on_a_a @ F1 @ F2 @ Option ) )
= ( case_option_o_a @ ( H @ F1 )
@ ^ [X2: a] : ( H @ ( F2 @ X2 ) )
@ Option ) ) ).
% option.case_distrib
thf(fact_263_option_Ocase__distrib,axiom,
! [H: option_a > option_a,F1: option_a,F2: a > option_a,Option: option_a] :
( ( H @ ( case_o3148979394504432965on_a_a @ F1 @ F2 @ Option ) )
= ( case_o3148979394504432965on_a_a @ ( H @ F1 )
@ ^ [X2: a] : ( H @ ( F2 @ X2 ) )
@ Option ) ) ).
% option.case_distrib
thf(fact_264_option_Ocase__distrib,axiom,
! [H: option_a > a,F1: option_a,F2: a > option_a,Option: option_a] :
( ( H @ ( case_o3148979394504432965on_a_a @ F1 @ F2 @ Option ) )
= ( case_option_a_a @ ( H @ F1 )
@ ^ [X2: a] : ( H @ ( F2 @ X2 ) )
@ Option ) ) ).
% option.case_distrib
thf(fact_265_option_Ocase__distrib,axiom,
! [H: a > $o,F1: a,F2: a > a,Option: option_a] :
( ( H @ ( case_option_a_a @ F1 @ F2 @ Option ) )
= ( case_option_o_a @ ( H @ F1 )
@ ^ [X2: a] : ( H @ ( F2 @ X2 ) )
@ Option ) ) ).
% option.case_distrib
thf(fact_266_option_Ocase__distrib,axiom,
! [H: a > option_a,F1: a,F2: a > a,Option: option_a] :
( ( H @ ( case_option_a_a @ F1 @ F2 @ Option ) )
= ( case_o3148979394504432965on_a_a @ ( H @ F1 )
@ ^ [X2: a] : ( H @ ( F2 @ X2 ) )
@ Option ) ) ).
% option.case_distrib
thf(fact_267_option_Ocase__distrib,axiom,
! [H: a > a,F1: a,F2: a > a,Option: option_a] :
( ( H @ ( case_option_a_a @ F1 @ F2 @ Option ) )
= ( case_option_a_a @ ( H @ F1 )
@ ^ [X2: a] : ( H @ ( F2 @ X2 ) )
@ Option ) ) ).
% option.case_distrib
thf(fact_268_combine__options__def,axiom,
( combine_options_a
= ( ^ [F3: a > a > a,X2: option_a,Y: option_a] :
( case_o3148979394504432965on_a_a @ Y
@ ^ [Z3: a] :
( case_o3148979394504432965on_a_a @ ( some_a @ Z3 )
@ ^ [Aa: a] : ( some_a @ ( F3 @ Z3 @ Aa ) )
@ Y )
@ X2 ) ) ) ).
% combine_options_def
thf(fact_269_inj__Some,axiom,
! [A3: set_a] : ( inj_on_a_option_a @ some_a @ A3 ) ).
% inj_Some
thf(fact_270_finite__Map__induct,axiom,
! [M: option_a > option_a,P3: ( option_a > option_a ) > $o] :
( ( finite1674126218327898605tion_a @ ( dom_option_a_a @ M ) )
=> ( ( P3
@ ^ [X2: option_a] : none_a )
=> ( ! [K2: option_a,V3: a,M3: option_a > option_a] :
( ( finite1674126218327898605tion_a @ ( dom_option_a_a @ M3 ) )
=> ( ~ ( member_option_a @ K2 @ ( dom_option_a_a @ M3 ) )
=> ( ( P3 @ M3 )
=> ( P3 @ ( fun_up1079276522633388797tion_a @ M3 @ K2 @ ( some_a @ V3 ) ) ) ) ) )
=> ( P3 @ M ) ) ) ) ).
% finite_Map_induct
thf(fact_271_finite__Map__induct,axiom,
! [M: a > option_a,P3: ( a > option_a ) > $o] :
( ( finite_finite_a @ ( dom_a_a @ M ) )
=> ( ( P3
@ ^ [X2: a] : none_a )
=> ( ! [K2: a,V3: a,M3: a > option_a] :
( ( finite_finite_a @ ( dom_a_a @ M3 ) )
=> ( ~ ( member_a @ K2 @ ( dom_a_a @ M3 ) )
=> ( ( P3 @ M3 )
=> ( P3 @ ( fun_upd_a_option_a @ M3 @ K2 @ ( some_a @ V3 ) ) ) ) ) )
=> ( P3 @ M ) ) ) ) ).
% finite_Map_induct
thf(fact_272_map__option__case,axiom,
( map_option_a_a
= ( ^ [F3: a > a] :
( case_o3148979394504432965on_a_a @ none_a
@ ^ [X2: a] : ( some_a @ ( F3 @ X2 ) ) ) ) ) ).
% map_option_case
thf(fact_273_map__option_Oidentity,axiom,
( ( map_option_a_a
@ ^ [X2: a] : X2 )
= id_option_a ) ).
% map_option.identity
thf(fact_274_Option_Othese__def,axiom,
( these_a
= ( ^ [A5: set_option_a] :
( image_option_a_a @ the_a
@ ( collect_option_a
@ ^ [X2: option_a] :
( ( member_option_a @ X2 @ A5 )
& ( X2 != none_a ) ) ) ) ) ) ).
% Option.these_def
thf(fact_275_finite__range__Some,axiom,
( ( finite8114217219359860531tion_a @ ( image_2132136900116418507tion_a @ some_option_a @ top_top_set_option_a ) )
= ( finite1674126218327898605tion_a @ top_top_set_option_a ) ) ).
% finite_range_Some
thf(fact_276_finite__range__Some,axiom,
( ( finite1674126218327898605tion_a @ ( image_a_option_a @ some_a @ top_top_set_a ) )
= ( finite_finite_a @ top_top_set_a ) ) ).
% finite_range_Some
thf(fact_277_Some__image__these__eq,axiom,
! [A3: set_option_a] :
( ( image_a_option_a @ some_a @ ( these_a @ A3 ) )
= ( collect_option_a
@ ^ [X2: option_a] :
( ( member_option_a @ X2 @ A3 )
& ( X2 != none_a ) ) ) ) ).
% Some_image_these_eq
thf(fact_278_disjE__realizer2,axiom,
! [P3: $o,Q3: a > $o,X: option_a,R3: $o > $o,F: $o,G: a > $o] :
( ( case_option_o_a @ P3 @ Q3 @ X )
=> ( ( P3
=> ( R3 @ F ) )
=> ( ! [Q4: a] :
( ( Q3 @ Q4 )
=> ( R3 @ ( G @ Q4 ) ) )
=> ( R3 @ ( case_option_o_a @ F @ G @ X ) ) ) ) ) ).
% disjE_realizer2
thf(fact_279_disjE__realizer2,axiom,
! [P3: $o,Q3: a > $o,X: option_a,R3: option_a > $o,F: option_a,G: a > option_a] :
( ( case_option_o_a @ P3 @ Q3 @ X )
=> ( ( P3
=> ( R3 @ F ) )
=> ( ! [Q4: a] :
( ( Q3 @ Q4 )
=> ( R3 @ ( G @ Q4 ) ) )
=> ( R3 @ ( case_o3148979394504432965on_a_a @ F @ G @ X ) ) ) ) ) ).
% disjE_realizer2
thf(fact_280_disjE__realizer2,axiom,
! [P3: $o,Q3: a > $o,X: option_a,R3: a > $o,F: a,G: a > a] :
( ( case_option_o_a @ P3 @ Q3 @ X )
=> ( ( P3
=> ( R3 @ F ) )
=> ( ! [Q4: a] :
( ( Q3 @ Q4 )
=> ( R3 @ ( G @ Q4 ) ) )
=> ( R3 @ ( case_option_a_a @ F @ G @ X ) ) ) ) ) ).
% disjE_realizer2
thf(fact_281_option_Othe__def,axiom,
( the_a
= ( case_option_a_a @ undefined_a
@ ^ [X24: a] : X24 ) ) ).
% option.the_def
thf(fact_282_semilattice__set_Oeq__fold_H,axiom,
! [F: a > a > a,A3: set_a] :
( ( lattic5961991414251573132_set_a @ F )
=> ( ( lattic5116578512385870296ce_F_a @ F @ A3 )
= ( the_a
@ ( finite6501707464432451470tion_a
@ ^ [X2: a,Y: option_a] : ( some_a @ ( case_option_a_a @ X2 @ ( F @ X2 ) @ Y ) )
@ none_a
@ A3 ) ) ) ) ).
% semilattice_set.eq_fold'
thf(fact_283_rel__option__inf,axiom,
! [A3: a > a > $o,B4: a > a > $o] :
( ( inf_in5160421943901843420on_a_o @ ( rel_option_a_a @ A3 ) @ ( rel_option_a_a @ B4 ) )
= ( rel_option_a_a @ ( inf_inf_a_a_o @ A3 @ B4 ) ) ) ).
% rel_option_inf
thf(fact_284_semilattice__set_Oinfinite,axiom,
! [F: option_a > option_a > option_a,A3: set_option_a] :
( ( lattic4111267149900974290tion_a @ F )
=> ( ~ ( finite1674126218327898605tion_a @ A3 )
=> ( ( lattic5543840709497872670tion_a @ F @ A3 )
= ( the_option_a @ none_option_a ) ) ) ) ).
% semilattice_set.infinite
thf(fact_285_semilattice__set_Oinfinite,axiom,
! [F: a > a > a,A3: set_a] :
( ( lattic5961991414251573132_set_a @ F )
=> ( ~ ( finite_finite_a @ A3 )
=> ( ( lattic5116578512385870296ce_F_a @ F @ A3 )
= ( the_a @ none_a ) ) ) ) ).
% semilattice_set.infinite
thf(fact_286_rel__option__iff,axiom,
( rel_option_a_a
= ( ^ [R4: a > a > $o,X2: option_a,Y: option_a] :
( produc7248784972643495020on_a_o
@ ^ [A2: option_a,B2: option_a] :
( case_option_o_a
@ ( case_option_o_a @ $true
@ ^ [C2: a] : $false
@ B2 )
@ ^ [Z3: a] : ( case_option_o_a @ $false @ ( R4 @ Z3 ) @ B2 )
@ A2 )
@ ( produc9011544418120257559tion_a @ X2 @ Y ) ) ) ) ).
% rel_option_iff
thf(fact_287_option_Odisc__transfer_I1_J,axiom,
! [R3: a > a > $o] :
( bNF_re905040088260304477_a_o_o @ ( rel_option_a_a @ R3 )
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 )
@ ^ [Option3: option_a] : ( Option3 = none_a )
@ ^ [Option3: option_a] : ( Option3 = none_a ) ) ).
% option.disc_transfer(1)
thf(fact_288_option_Odisc__transfer_I2_J,axiom,
! [R3: a > a > $o] :
( bNF_re905040088260304477_a_o_o @ ( rel_option_a_a @ R3 )
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 )
@ ^ [Option3: option_a] : ( Option3 != none_a )
@ ^ [Option3: option_a] : ( Option3 != none_a ) ) ).
% option.disc_transfer(2)
thf(fact_289_option_Omap__cong__pred,axiom,
! [X: option_a,Ya: option_a,F: a > a,G: a > a] :
( ( X = Ya )
=> ( ( pred_option_a
@ ^ [Z3: a] :
( ( F @ Z3 )
= ( G @ Z3 ) )
@ Ya )
=> ( ( map_option_a_a @ F @ X )
= ( map_option_a_a @ G @ Ya ) ) ) ) ).
% option.map_cong_pred
thf(fact_290_option_Opred__inject_I2_J,axiom,
! [P3: a > $o,A: a] :
( ( pred_option_a @ P3 @ ( some_a @ A ) )
= ( P3 @ A ) ) ).
% option.pred_inject(2)
thf(fact_291_option_Ocase__transfer,axiom,
! [S: $o > $o > $o,R3: option_a > option_a > $o] : ( bNF_re7775980886671535221on_a_o @ S @ ( bNF_re8007680959799151545on_a_o @ ( bNF_re905040088260304477_a_o_o @ R3 @ S ) @ ( bNF_re669219658517073757_a_o_o @ ( rel_op4798662380513671176tion_a @ R3 ) @ S ) ) @ case_o3426643154261757367tion_a @ case_o3426643154261757367tion_a ) ).
% option.case_transfer
thf(fact_292_option_Ocase__transfer,axiom,
! [S: $o > $o > $o,R3: a > a > $o] : ( bNF_re1464701735350397069on_a_o @ S @ ( bNF_re4859868158825367505on_a_o @ ( bNF_rel_fun_a_a_o_o @ R3 @ S ) @ ( bNF_re905040088260304477_a_o_o @ ( rel_option_a_a @ R3 ) @ S ) ) @ case_option_o_a @ case_option_o_a ) ).
% option.case_transfer
thf(fact_293_option_Ocase__transfer,axiom,
! [S: $o > option_a > $o,R3: a > a > $o] : ( bNF_re7078363273947182481tion_a @ S @ ( bNF_re2369685550566307625tion_a @ ( bNF_re905553932590079753tion_a @ R3 @ S ) @ ( bNF_re1129020316103814665tion_a @ ( rel_option_a_a @ R3 ) @ S ) ) @ case_option_o_a @ case_o3148979394504432965on_a_a ) ).
% option.case_transfer
thf(fact_294_option_Ocase__transfer,axiom,
! [S: $o > a > $o,R3: a > a > $o] : ( bNF_re4337018088969878591on_a_a @ S @ ( bNF_re102678143051736477on_a_a @ ( bNF_rel_fun_a_a_o_a @ R3 @ S ) @ ( bNF_re8815814597387604803_a_o_a @ ( rel_option_a_a @ R3 ) @ S ) ) @ case_option_o_a @ case_option_a_a ) ).
% option.case_transfer
thf(fact_295_option_Ocase__transfer,axiom,
! [S: option_a > $o > $o,R3: a > a > $o] : ( bNF_re4311958519388381497on_a_o @ S @ ( bNF_re6058157240589548841on_a_o @ ( bNF_re1847112384428219057on_a_o @ R3 @ S ) @ ( bNF_re2070578767941953969on_a_o @ ( rel_option_a_a @ R3 ) @ S ) ) @ case_o3148979394504432965on_a_a @ case_option_o_a ) ).
% option.case_transfer
thf(fact_296_option_Ocase__transfer,axiom,
! [S: option_a > option_a > $o,R3: a > a > $o] : ( bNF_re1266155380144051773tion_a @ S @ ( bNF_re2722752998287985793tion_a @ ( bNF_re1187871780581372509tion_a @ R3 @ S ) @ ( bNF_re8713957294334624093tion_a @ ( rel_option_a_a @ R3 ) @ S ) ) @ case_o3148979394504432965on_a_a @ case_o3148979394504432965on_a_a ) ).
% option.case_transfer
thf(fact_297_option_Ocase__transfer,axiom,
! [S: option_a > a > $o,R3: a > a > $o] : ( bNF_re5218620495166150379on_a_a @ S @ ( bNF_re5072729714030605557on_a_a @ ( bNF_re5794519239126689175on_a_a @ R3 @ S ) @ ( bNF_re4157831115608716439on_a_a @ ( rel_option_a_a @ R3 ) @ S ) ) @ case_o3148979394504432965on_a_a @ case_option_a_a ) ).
% option.case_transfer
thf(fact_298_option_Ocase__transfer,axiom,
! [S: a > $o > $o,R3: a > a > $o] : ( bNF_re8717284581917077363on_a_o @ S @ ( bNF_re4058884933032857501on_a_o @ ( bNF_rel_fun_a_a_a_o @ R3 @ S ) @ ( bNF_re8895294753853352567_a_a_o @ ( rel_option_a_a @ R3 ) @ S ) ) @ case_option_a_a @ case_option_o_a ) ).
% option.case_transfer
thf(fact_299_option_Ocase__transfer,axiom,
! [S: a > option_a > $o,R3: a > a > $o] : ( bNF_re1882382041600142455tion_a @ S @ ( bNF_re7263069294043397365tion_a @ ( bNF_re3572005357587894051tion_a @ R3 @ S ) @ ( bNF_re1935317234069921315tion_a @ ( rel_option_a_a @ R3 ) @ S ) ) @ case_option_a_a @ case_o3148979394504432965on_a_a ) ).
% option.case_transfer
thf(fact_300_option_Ocase__transfer,axiom,
! [S: a > a > $o,R3: a > a > $o] : ( bNF_re6523360481052543525on_a_a @ S @ ( bNF_re1079736789768479081on_a_a @ ( bNF_rel_fun_a_a_a_a @ R3 @ S ) @ ( bNF_re6951206947496014429_a_a_a @ ( rel_option_a_a @ R3 ) @ S ) ) @ case_option_a_a @ case_option_a_a ) ).
% option.case_transfer
thf(fact_301_option_Omap__transfer,axiom,
! [Rb: option_a > option_a > $o,Sd: $o > $o > $o] : ( bNF_re5724521104517466949tion_o @ ( bNF_re905040088260304477_a_o_o @ Rb @ Sd ) @ ( bNF_re7165334401771760221tion_o @ ( rel_op4798662380513671176tion_a @ Rb ) @ ( rel_option_o_o @ Sd ) ) @ map_op2529087131052605791on_a_o @ map_op2529087131052605791on_a_o ) ).
% option.map_transfer
thf(fact_302_option_Omap__transfer,axiom,
! [Rb: a > a > $o,Sd: option_a > option_a > $o] : ( bNF_re2496629990708770829tion_a @ ( bNF_re1187871780581372509tion_a @ Rb @ Sd ) @ ( bNF_re1595600300046643805tion_a @ ( rel_option_a_a @ Rb ) @ ( rel_op4798662380513671176tion_a @ Sd ) ) @ map_op2340691886215429841tion_a @ map_op2340691886215429841tion_a ) ).
% option.map_transfer
thf(fact_303_option_Omap__transfer,axiom,
! [Rb: a > a > $o,Sd: a > a > $o] : ( bNF_re8471833820502647285tion_a @ ( bNF_rel_fun_a_a_a_a @ Rb @ Sd ) @ ( bNF_re8713957294334624093tion_a @ ( rel_option_a_a @ Rb ) @ ( rel_option_a_a @ Sd ) ) @ map_option_a_a @ map_option_a_a ) ).
% option.map_transfer
thf(fact_304_option_Orec__transfer,axiom,
! [S: $o > $o > $o,R3: option_a > option_a > $o] : ( bNF_re7775980886671535221on_a_o @ S @ ( bNF_re8007680959799151545on_a_o @ ( bNF_re905040088260304477_a_o_o @ R3 @ S ) @ ( bNF_re669219658517073757_a_o_o @ ( rel_op4798662380513671176tion_a @ R3 ) @ S ) ) @ rec_op1346285999958695467tion_a @ rec_op1346285999958695467tion_a ) ).
% option.rec_transfer
thf(fact_305_option_Orec__transfer,axiom,
! [S: $o > $o > $o,R3: a > a > $o] : ( bNF_re1464701735350397069on_a_o @ S @ ( bNF_re4859868158825367505on_a_o @ ( bNF_rel_fun_a_a_o_o @ R3 @ S ) @ ( bNF_re905040088260304477_a_o_o @ ( rel_option_a_a @ R3 ) @ S ) ) @ rec_option_o_a @ rec_option_o_a ) ).
% option.rec_transfer
thf(fact_306_option_Orec__transfer,axiom,
! [S: option_a > option_a > $o,R3: a > a > $o] : ( bNF_re1266155380144051773tion_a @ S @ ( bNF_re2722752998287985793tion_a @ ( bNF_re1187871780581372509tion_a @ R3 @ S ) @ ( bNF_re8713957294334624093tion_a @ ( rel_option_a_a @ R3 ) @ S ) ) @ rec_op3997991240598549433on_a_a @ rec_op3997991240598549433on_a_a ) ).
% option.rec_transfer
thf(fact_307_option_Opred__True,axiom,
( ( pred_option_a
@ ^ [Uu: a] : $true )
= ( ^ [Uu: option_a] : $true ) ) ).
% option.pred_True
thf(fact_308_option_Opred__inject_I1_J,axiom,
! [P3: a > $o] : ( pred_option_a @ P3 @ none_a ) ).
% option.pred_inject(1)
thf(fact_309_option_Opred__map,axiom,
! [Q3: a > $o,F: a > a,X: option_a] :
( ( pred_option_a @ Q3 @ ( map_option_a_a @ F @ X ) )
= ( pred_option_a @ ( comp_a_o_a @ Q3 @ F ) @ X ) ) ).
% option.pred_map
thf(fact_310_option_Opred__cong,axiom,
! [X: option_option_a,Ya: option_option_a,P3: option_a > $o,Pa: option_a > $o] :
( ( X = Ya )
=> ( ! [Z2: option_a] :
( ( member_option_a @ Z2 @ ( set_option_option_a2 @ Ya ) )
=> ( ( P3 @ Z2 )
= ( Pa @ Z2 ) ) )
=> ( ( pred_option_option_a @ P3 @ X )
= ( pred_option_option_a @ Pa @ Ya ) ) ) ) ).
% option.pred_cong
thf(fact_311_option_Opred__cong,axiom,
! [X: option_a,Ya: option_a,P3: a > $o,Pa: a > $o] :
( ( X = Ya )
=> ( ! [Z2: a] :
( ( member_a @ Z2 @ ( set_option_a2 @ Ya ) )
=> ( ( P3 @ Z2 )
= ( Pa @ Z2 ) ) )
=> ( ( pred_option_a @ P3 @ X )
= ( pred_option_a @ Pa @ Ya ) ) ) ) ).
% option.pred_cong
thf(fact_312_option_Opred__mono__strong,axiom,
! [P3: option_a > $o,X: option_option_a,Pa: option_a > $o] :
( ( pred_option_option_a @ P3 @ X )
=> ( ! [Z2: option_a] :
( ( member_option_a @ Z2 @ ( set_option_option_a2 @ X ) )
=> ( ( P3 @ Z2 )
=> ( Pa @ Z2 ) ) )
=> ( pred_option_option_a @ Pa @ X ) ) ) ).
% option.pred_mono_strong
thf(fact_313_option_Opred__mono__strong,axiom,
! [P3: a > $o,X: option_a,Pa: a > $o] :
( ( pred_option_a @ P3 @ X )
=> ( ! [Z2: a] :
( ( member_a @ Z2 @ ( set_option_a2 @ X ) )
=> ( ( P3 @ Z2 )
=> ( Pa @ Z2 ) ) )
=> ( pred_option_a @ Pa @ X ) ) ) ).
% option.pred_mono_strong
thf(fact_314_pred__option__parametric,axiom,
! [A3: option_a > option_a > $o] :
( bNF_re8007680959799151545on_a_o
@ ( bNF_re905040088260304477_a_o_o @ A3
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) )
@ ( bNF_re669219658517073757_a_o_o @ ( rel_op4798662380513671176tion_a @ A3 )
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) )
@ pred_option_option_a
@ pred_option_option_a ) ).
% pred_option_parametric
thf(fact_315_pred__option__parametric,axiom,
! [A3: a > a > $o] :
( bNF_re4859868158825367505on_a_o
@ ( bNF_rel_fun_a_a_o_o @ A3
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) )
@ ( bNF_re905040088260304477_a_o_o @ ( rel_option_a_a @ A3 )
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) )
@ pred_option_a
@ pred_option_a ) ).
% pred_option_parametric
thf(fact_316_option_Opred__transfer,axiom,
! [R3: option_a > option_a > $o] :
( bNF_re8007680959799151545on_a_o
@ ( bNF_re905040088260304477_a_o_o @ R3
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) )
@ ( bNF_re669219658517073757_a_o_o @ ( rel_op4798662380513671176tion_a @ R3 )
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) )
@ pred_option_option_a
@ pred_option_option_a ) ).
% option.pred_transfer
thf(fact_317_option_Opred__transfer,axiom,
! [R3: a > a > $o] :
( bNF_re4859868158825367505on_a_o
@ ( bNF_rel_fun_a_a_o_o @ R3
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) )
@ ( bNF_re905040088260304477_a_o_o @ ( rel_option_a_a @ R3 )
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) )
@ pred_option_a
@ pred_option_a ) ).
% option.pred_transfer
thf(fact_318_option_Opred__rel,axiom,
( pred_option_a
= ( ^ [P5: a > $o,X2: option_a] : ( rel_option_a_a @ ( bNF_eq_onp_a @ P5 ) @ X2 @ X2 ) ) ) ).
% option.pred_rel
thf(fact_319_option_Opred__set,axiom,
( pred_option_a
= ( ^ [P5: a > $o,X2: option_a] :
! [Y: a] :
( ( member_a @ Y @ ( set_option_a2 @ X2 ) )
=> ( P5 @ Y ) ) ) ) ).
% option.pred_set
thf(fact_320_option_Orel__transfer,axiom,
! [Sa: a > a > $o,Sc: option_a > option_a > $o] :
( bNF_re3412046433515172957on_a_o
@ ( bNF_re6100770640034910033on_a_o @ Sa
@ ( bNF_re905040088260304477_a_o_o @ Sc
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) ) )
@ ( bNF_re3043890739735069381on_a_o @ ( rel_option_a_a @ Sa )
@ ( bNF_re669219658517073757_a_o_o @ ( rel_op4798662380513671176tion_a @ Sc )
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) ) )
@ rel_op1513876725179314510tion_a
@ rel_op1513876725179314510tion_a ) ).
% option.rel_transfer
thf(fact_321_option_Orel__transfer,axiom,
! [Sa: a > a > $o,Sc: a > a > $o] :
( bNF_re4921454823102592605on_a_o
@ ( bNF_re6468246989568818141_o_a_o @ Sa
@ ( bNF_rel_fun_a_a_o_o @ Sc
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) ) )
@ ( bNF_re1541143192665202257on_a_o @ ( rel_option_a_a @ Sa )
@ ( bNF_re905040088260304477_a_o_o @ ( rel_option_a_a @ Sc )
@ ^ [Y5: $o,Z4: $o] : ( Y5 = Z4 ) ) )
@ rel_option_a_a
@ rel_option_a_a ) ).
% option.rel_transfer
thf(fact_322_option_Orel__eq__onp,axiom,
! [P3: a > $o] :
( ( rel_option_a_a @ ( bNF_eq_onp_a @ P3 ) )
= ( bNF_eq_onp_option_a @ ( pred_option_a @ P3 ) ) ) ).
% option.rel_eq_onp
thf(fact_323_option__bind__transfer,axiom,
! [A3: a > a > $o,B4: a > a > $o] : ( bNF_re5708320262762544989tion_a @ ( rel_option_a_a @ A3 ) @ ( bNF_re5527783635739595829tion_a @ ( bNF_re1187871780581372509tion_a @ A3 @ ( rel_option_a_a @ B4 ) ) @ ( rel_option_a_a @ B4 ) ) @ bind_a_a @ bind_a_a ) ).
% option_bind_transfer
thf(fact_324_option_Octr__transfer_I2_J,axiom,
! [R3: a > a > $o] : ( bNF_re1187871780581372509tion_a @ R3 @ ( rel_option_a_a @ R3 ) @ some_a @ some_a ) ).
% option.ctr_transfer(2)
thf(fact_325_option_Oset__transfer,axiom,
! [R3: a > a > $o] : ( bNF_re8767609936234141277_set_a @ ( rel_option_a_a @ R3 ) @ ( bNF_rel_set_a_a @ R3 ) @ set_option_a2 @ set_option_a2 ) ).
% option.set_transfer
% Helper facts (5)
thf(help_If_2_1_If_001tf__a_T,axiom,
! [X: a,Y3: a] :
( ( if_a @ $false @ X @ Y3 )
= Y3 ) ).
thf(help_If_1_1_If_001tf__a_T,axiom,
! [X: a,Y3: a] :
( ( if_a @ $true @ X @ Y3 )
= X ) ).
thf(help_If_3_1_If_001t__Option__Ooption_Itf__a_J_T,axiom,
! [P3: $o] :
( ( P3 = $true )
| ( P3 = $false ) ) ).
thf(help_If_2_1_If_001t__Option__Ooption_Itf__a_J_T,axiom,
! [X: option_a,Y3: option_a] :
( ( if_option_a @ $false @ X @ Y3 )
= Y3 ) ).
thf(help_If_1_1_If_001t__Option__Ooption_Itf__a_J_T,axiom,
! [X: option_a,Y3: option_a] :
( ( if_option_a @ $true @ X @ Y3 )
= X ) ).
% Conjectures (1)
thf(conj_0,conjecture,
pre_compatible_a @ plus @ x @ b2 ).
%------------------------------------------------------------------------------