def prove(Eq): A = Symbol.A(dtype=dtype.integer) B = Symbol.B(dtype=dtype.integer) Eq << apply(Equality(Intersection(A, B), S.EmptySet)) C = Symbol.C(dtype=dtype.integer, definition=A | B) D = Symbol.D(dtype=dtype.integer, definition=A - B) Eq << C.this.definition Eq << D.this.definition Eq << Eq[-1].union(A) Eq << Eq[-2].union(B) Eq << sets.equality.imply.equality.given.emptyset.complement.apply(Eq[0]) Eq << Eq[-1].abs() Eq << Eq[1].subs(Eq[-1].reversed) Eq << Eq[-1] - Eq[-1].rhs.args[0] Eq << (A - B).assertion()
def prove(Eq): A = Symbol.A(dtype=dtype.integer) B = Symbol.B(dtype=dtype.integer) Eq << apply(A, B) Eq << Equality(abs(A | B), abs(A) + abs(B - A), plausible=True) Eq << Eq[-1].subs(Eq[-2]) Eq << Eq[-1] - Eq[-1].lhs.args[1] C = Symbol.C(dtype=dtype.integer, definition=A & B) D = Symbol.D(dtype=dtype.integer, definition=B - A) Eq.C_definition = C.this.definition Eq.D_definition = D.this.definition Eq << Equality(D & C, S.EmptySet, plausible=True) Eq << Eq[-1].subs(Eq.C_definition, Eq.D_definition) Eq << sets.equality.imply.equality.given.intersection.addition_principle.apply( Eq[-1]) Eq << Eq[-1].subs(Eq.C_definition, Eq.D_definition) Eq << Equality(D & A, S.EmptySet, plausible=True) Eq << Eq[-1].subs(Eq.D_definition) Eq << sets.equality.imply.equality.given.intersection.addition_principle.apply( Eq[-1]) Eq << Eq[-1].subs(Eq.D_definition)
def prove(Eq): A = Symbol.A(dtype=dtype.integer, given=True) B = Symbol.B(dtype=dtype.integer, given=True) C = Symbol.C(dtype=dtype.integer, given=True) Eq << apply(Equality(B & C, S.EmptySet, evaluate=False), Subset(A, B, evaluate=False)) Eq << sets.equality.imply.equality.given.emptyset.subset.apply( Eq[0], Eq[1]) Eq << Eq[-1].union(Eq[-2].lhs).reversed
def prove(Eq): A = Symbol.A(dtype=dtype.integer) B = Symbol.B(dtype=dtype.integer) C = Symbol.C(dtype=dtype.integer) subset = Subset(A, B, evaluate=False) equality = Equality(B & C, S.EmptySet, evaluate=False) Eq << apply(equality, subset) Eq << subset.intersect(C) Eq << Eq[-1].subs(equality) Eq << Supset(*Eq[-1].args, plausible=True) Eq << Eq[-1].subs(Eq[-2])