Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)