let V be Ring; for V1 being Subset of V st V1 is additively-closed & V1 is multiplicatively-closed & not V1 is empty holds
doubleLoopStr(# V1,(Add_ V1,V),(mult_ V1,V),(One_ V1,V),(Zero_ V1,V) #) is Ring
let V1 be Subset of V; ( V1 is additively-closed & V1 is multiplicatively-closed & not V1 is empty implies doubleLoopStr(# V1,(Add_ V1,V),(mult_ V1,V),(One_ V1,V),(Zero_ V1,V) #) is Ring )
assume A1:
( V1 is additively-closed & V1 is multiplicatively-closed & not V1 is empty )
; doubleLoopStr(# V1,(Add_ V1,V),(mult_ V1,V),(One_ V1,V),(Zero_ V1,V) #) is Ring
then A2:
( One_ V1,V = 1_ V & mult_ V1,V = the multF of V || V1 )
by Def6, Def8;
( Zero_ V1,V = 0. V & Add_ V1,V = the addF of V || V1 )
by A1, Def5, Def7;
hence
doubleLoopStr(# V1,(Add_ V1,V),(mult_ V1,V),(One_ V1,V),(Zero_ V1,V) #) is Ring
by A1, A2, Th1; verum