def unbundle_equality(self, num_param_entries=(1, ), **defaults_config): ''' From a nested forall, equate it with an equivalent form in which the parameter entries are split in number according to 'num_param_entries'. For example, \forall_{x, y, z | Q(x, y), R(z)} P(x, y, z) can equate with \forall_{x, y | Q(x, y)} \forall_{z | R(z)} P(x, y, z) via bundle with num_param_entries=(2, 1) or num_param_entries=(2,) -- the last number can be implied by the remaining number of parameters. ''' from proveit import unbundle # generic for Op..OverInstances from . import bundling return unbundle(self, bundling, num_param_entries=num_param_entries)
def unbundle(self, num_param_entries=(1, ), *, assumptions=USE_DEFAULTS): ''' From a nested forall, derive an equivalent form in which the parameter entries are split in number according to 'num_param_entries'. For example, \forall_{x, y, z | Q(x, y), R(z)} P(x, y, z) can become \forall_{x, y | Q(x, y)} \forall_{z | R(z)} P(x, y, z) via bundle with num_param_entries=(2, 1) or num_param_entries=(2,) -- the last number can be implied by the remaining number of parameters. ''' from proveit import unbundle # generic for OperationOverInstances from ._theorems_ import unbundle as unbundle_thm return unbundle(self, unbundle_thm, num_param_entries=num_param_entries, assumptions=assumptions)