let g be set ; :: thesis: ( g in SIMPLEGRAPHS F1() implies P1[g] )
assume A4: g in SIMPLEGRAPHS F1() ; :: thesis: P1[g]
then consider v being finite Subset of F1(), e being finite Subset of (TWOELEMENTSETS v) such that
A5: g = SimpleGraphStruct(# v,e #) ;
reconsider G = g as SimpleGraph of F1() by A4, A5, Def7;
A6: ( the carrier of G c= F1() & the SEdges of G c= TWOELEMENTSETS the carrier of G ) by Th23;
per cases ( F1() is empty or not F1() is empty ) ;
suppose A7: F1() is empty ; :: thesis: P1[g]
end;
suppose not F1() is empty ; :: thesis: P1[g]
then reconsider X = F1() as non empty set ;
defpred S1[ set ] means P1[ SimpleGraphStruct(# $1,({} (TWOELEMENTSETS $1)) #)];
A8: S1[ {}. X] by A1;
A9: now
let B' be Element of Fin X; :: thesis: for b being Element of X st S1[B'] & not b in B' holds
S1[B' \/ {b}]

let b be Element of X; :: thesis: ( S1[B'] & not b in B' implies S1[B' \/ {b}] )
assume A10: ( S1[B'] & not b in B' ) ; :: thesis: S1[B' \/ {b}]
set g = SimpleGraphStruct(# B',({} (TWOELEMENTSETS B')) #);
B' is finite Subset of X by FINSUB_1:32;
then A11: SimpleGraphStruct(# B',({} (TWOELEMENTSETS B')) #) in SIMPLEGRAPHS F1() ;
then reconsider g = SimpleGraphStruct(# B',({} (TWOELEMENTSETS B')) #) as SimpleGraph of F1() by Def7;
P1[ SimpleGraphStruct(# (the carrier of g \/ {b}),({} (TWOELEMENTSETS (the carrier of g \/ {b}))) #)] by A2, A10, A11;
hence S1[B' \/ {b}] ; :: thesis: verum
end;
A12: for VV being Element of Fin X holds S1[VV] from SETWISEO:sch 2(A8, A9);
A13: now
let VV be Element of Fin X; :: thesis: for EEa being Finite_Subset of (TWOELEMENTSETS EEa)
for EE being Subset of (TWOELEMENTSETS EEa) st EE = b3 holds
P1[ SimpleGraphStruct(# EEa,b3 #)]

per cases ( TWOELEMENTSETS VV = {} or TWOELEMENTSETS VV <> {} ) ;
suppose A14: TWOELEMENTSETS VV = {} ; :: thesis: for EEa being Finite_Subset of (TWOELEMENTSETS EEa)
for EE being Subset of (TWOELEMENTSETS EEa) st EE = b3 holds
P1[ SimpleGraphStruct(# EEa,b3 #)]

let EEa be Finite_Subset of (TWOELEMENTSETS VV); :: thesis: for EE being Subset of (TWOELEMENTSETS VV) st EEa = EE holds
P1[ SimpleGraphStruct(# VV,EE #)]

let EE be Subset of (TWOELEMENTSETS VV); :: thesis: ( EEa = EE implies P1[ SimpleGraphStruct(# VV,EE #)] )
assume EEa = EE ; :: thesis: P1[ SimpleGraphStruct(# VV,EE #)]
EE = {} (TWOELEMENTSETS VV) by A14;
hence P1[ SimpleGraphStruct(# VV,EE #)] by A12; :: thesis: verum
end;
suppose TWOELEMENTSETS VV <> {} ; :: thesis: for EE being Finite_Subset of (TWOELEMENTSETS EE)
for EE' being Subset of (TWOELEMENTSETS EE) st b3 = EE' holds
P1[ SimpleGraphStruct(# EE,b3 #)]

then reconsider TT = TWOELEMENTSETS VV as non empty set ;
defpred S2[ Finite_Subset of TT] means for EE being Subset of (TWOELEMENTSETS VV) st EE = $1 holds
P1[ SimpleGraphStruct(# VV,EE #)];
A15: S2[ {}. TT]
proof
let EE be Subset of (TWOELEMENTSETS VV); :: thesis: ( EE = {}. TT implies P1[ SimpleGraphStruct(# VV,EE #)] )
assume EE = {}. TT ; :: thesis: P1[ SimpleGraphStruct(# VV,EE #)]
then EE = {} (TWOELEMENTSETS VV) ;
hence P1[ SimpleGraphStruct(# VV,EE #)] by A12; :: thesis: verum
end;
A16: now
let ee be Finite_Subset of TT; :: thesis: for vv being Element of TT st S2[ee] & not vv in ee holds
S2[ee \/ {.vv.}]

let vv be Element of TT; :: thesis: ( S2[ee] & not vv in ee implies S2[ee \/ {.vv.}] )
assume A17: ( S2[ee] & not vv in ee ) ; :: thesis: S2[ee \/ {.vv.}]
reconsider ee' = ee as Subset of (TWOELEMENTSETS VV) by FINSUB_1:32;
A18: VV is finite Subset of F1() by FINSUB_1:32;
set g = SimpleGraphStruct(# VV,ee' #);
SimpleGraphStruct(# VV,ee' #) is Element of SIMPLEGRAPHS F1() by A18, Th21;
then reconsider g = SimpleGraphStruct(# VV,ee' #) as SimpleGraph of F1() by Def7;
P1[g] by A17;
then consider sege being Subset of (TWOELEMENTSETS the carrier of g) such that
A19: sege = the SEdges of g \/ {vv} and
A20: P1[ SimpleGraphStruct(# the carrier of g,sege #)] by A3, A17;
thus S2[ee \/ {.vv.}] by A19, A20; :: thesis: verum
end;
for EE being Finite_Subset of TT holds S2[EE] from SETWISEO:sch 2(A15, A16);
hence for EE being Finite_Subset of (TWOELEMENTSETS VV)
for EE' being Subset of (TWOELEMENTSETS VV) st EE' = EE holds
P1[ SimpleGraphStruct(# VV,EE' #)] ; :: thesis: verum
end;
end;
end;
A21: the carrier of G is Finite_Subset of X by A5, FINSUB_1:def 5;
the SEdges of G is Finite_Subset of (TWOELEMENTSETS the carrier of G) by A5, FINSUB_1:def 5;
hence P1[g] by A13, A21; :: thesis: verum
end;
end;