from research import *
s=begin(1028,'General reflection descent criterion','When does a source grouping carry an existing involution?',{},['C1025','C1027'])
criterion={'point_quotient':'q(x)=q(y) implies q(Rx)=q(Ry).','boundary_subset':'Selected boundaries must be invariant under R.','interval_coarsening':'R must permute complete coarse blocks.','proof':'The proposed map q(x)↦q(Rx) is well-defined exactly when representatives of one class have a common image class.'}
finish(s,criterion,'Reflection can pass to a grouped object only when the grouping respects its action. Point identification, interval coarsening and boundary selection require their own checks.','Test the source NT490 coarsening as a contrasting complete field.',{'Toledot_counterexample':9!=10 and 12-9!=12-10,'representative_condition_explicit':'q(Rx)' in criterion['point_quotient']})
