| Step | Hyp | Ref | Expression | 
						
							| 1 |  | derang.d |  |-  D = ( x e. Fin |-> ( # ` { f | ( f : x -1-1-onto-> x /\ A. y e. x ( f ` y ) =/= y ) } ) ) | 
						
							| 2 |  | subfac.n |  |-  S = ( n e. NN0 |-> ( D ` ( 1 ... n ) ) ) | 
						
							| 3 |  | anidm |  |-  ( ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) ) <-> f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) ) | 
						
							| 4 | 3 | abbii |  |-  { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) ) } = { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } | 
						
							| 5 |  | fzfid |  |-  ( N e. NN0 -> ( 1 ... N ) e. Fin ) | 
						
							| 6 |  | deranglem |  |-  ( ( 1 ... N ) e. Fin -> { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) ) } e. Fin ) | 
						
							| 7 | 5 6 | syl |  |-  ( N e. NN0 -> { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) ) } e. Fin ) | 
						
							| 8 | 4 7 | eqeltrrid |  |-  ( N e. NN0 -> { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } e. Fin ) | 
						
							| 9 |  | simpl |  |-  ( ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) -> f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) ) | 
						
							| 10 | 9 | ss2abi |  |-  { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } C_ { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } | 
						
							| 11 |  | ssdomg |  |-  ( { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } e. Fin -> ( { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } C_ { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } -> { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } ~<_ { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) ) | 
						
							| 12 | 8 10 11 | mpisyl |  |-  ( N e. NN0 -> { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } ~<_ { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) | 
						
							| 13 |  | deranglem |  |-  ( ( 1 ... N ) e. Fin -> { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } e. Fin ) | 
						
							| 14 | 5 13 | syl |  |-  ( N e. NN0 -> { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } e. Fin ) | 
						
							| 15 |  | hashdom |  |-  ( ( { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } e. Fin /\ { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } e. Fin ) -> ( ( # ` { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } ) <_ ( # ` { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) <-> { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } ~<_ { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) ) | 
						
							| 16 | 14 8 15 | syl2anc |  |-  ( N e. NN0 -> ( ( # ` { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } ) <_ ( # ` { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) <-> { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } ~<_ { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) ) | 
						
							| 17 | 12 16 | mpbird |  |-  ( N e. NN0 -> ( # ` { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } ) <_ ( # ` { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) ) | 
						
							| 18 | 1 2 | subfacval |  |-  ( N e. NN0 -> ( S ` N ) = ( D ` ( 1 ... N ) ) ) | 
						
							| 19 | 1 | derangval |  |-  ( ( 1 ... N ) e. Fin -> ( D ` ( 1 ... N ) ) = ( # ` { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } ) ) | 
						
							| 20 | 5 19 | syl |  |-  ( N e. NN0 -> ( D ` ( 1 ... N ) ) = ( # ` { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } ) ) | 
						
							| 21 | 18 20 | eqtrd |  |-  ( N e. NN0 -> ( S ` N ) = ( # ` { f | ( f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) /\ A. y e. ( 1 ... N ) ( f ` y ) =/= y ) } ) ) | 
						
							| 22 |  | hashfac |  |-  ( ( 1 ... N ) e. Fin -> ( # ` { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) = ( ! ` ( # ` ( 1 ... N ) ) ) ) | 
						
							| 23 | 5 22 | syl |  |-  ( N e. NN0 -> ( # ` { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) = ( ! ` ( # ` ( 1 ... N ) ) ) ) | 
						
							| 24 |  | hashfz1 |  |-  ( N e. NN0 -> ( # ` ( 1 ... N ) ) = N ) | 
						
							| 25 | 24 | fveq2d |  |-  ( N e. NN0 -> ( ! ` ( # ` ( 1 ... N ) ) ) = ( ! ` N ) ) | 
						
							| 26 | 23 25 | eqtr2d |  |-  ( N e. NN0 -> ( ! ` N ) = ( # ` { f | f : ( 1 ... N ) -1-1-onto-> ( 1 ... N ) } ) ) | 
						
							| 27 | 17 21 26 | 3brtr4d |  |-  ( N e. NN0 -> ( S ` N ) <_ ( ! ` N ) ) |