/- Copyright (c) 2015 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Author: Leonardo de Moura (set A) is an instance of a commutative semiring -/ import data.set.basic algebra.ring open set definition set_comm_semiring [instance] (A : Type) : comm_semiring (set A) := ⦃ comm_semiring, add := union, mul := inter, zero := empty, one := univ, add_assoc := union.assoc, add_comm := union.comm, zero_add := empty_union, add_zero := union_empty, mul_assoc := inter.assoc, mul_comm := inter.comm, zero_mul := empty_inter, mul_zero := inter_empty, one_mul := univ_inter, mul_one := inter_univ, left_distrib := inter.distrib_left, right_distrib := inter.distrib_right ⦄