[Skip Navigation] [CSUSB] / [CNS] / [Comp Sci ] / [R J Botting] / [ ] / math_82_MultiSets_and_Bags
[Contents] [Source Text] || [Notation] || [Copyright] || [Contact] [Search ]
Tue Sep 18 15:18:47 PDT 2007

# Theories of Multisets and Bags

In a set an object is either a member of not a member. In a list an object is either in a list at one or more specific places, or not there at all.

In a Bag or MultiSet an object can be in a set 0,1,2,3, or more times.

1. For S:Sets, Bag(S)::=\$ FLOW(S->Nat0,+, 0).
2. For S:Sets, MultiSet(S)::=\$ FLOW(S->Nat0,+, 0).

I prefer to treat these as special cases of flosets: ordered sets with an addition operator.

3. FLOW::= See http://csci.csusb.edu/dick/maths/math_23_Flow_Diagrams.html#flosets

Also compare with Fuzzy Sets where an object may be partly in and partly out of a set: [ math_83_Fuzzy_Sets.html ]

It is also possible to develop the theory of Bags/multisets independently: [click here if you can fill this hole]

. . . . . . . . . ( end of section Theories of Multisets and Bags) <<Contents | End>>

# Notes on MATHS Notation

Special characters are defined in [ intro_characters.html ] that also outlines the syntax of expressions and a document.

Proofs follow a natural deduction style that start with assumptions ("Let") and continue to a consequence ("Close Let") and then discard the assumptions and deduce a conclusion. Look here [ Block Structure in logic_25_Proofs ] for more on the structure and rules.

The notation also allows you to create a new network of variables and constraints. A "Net" has a number of variables (including none) and a number of properties (including none) that connect variables. You can give them a name and then reuse them. The schema, formal system, or an elementary piece of documentation starts with "Net" and finishes "End of Net". For more, see [ notn_13_Docn_Syntax.html ] for these ways of defining and reusing pieces of logic and algebra in your documents. A quick example: a circle = Net{radius:Positive Real, center:Point}.

For a complete listing of pages in this part of my site by topic see [ home.html ]

# Notes on the Underlying Logic of MATHS

The notation used here is a formal language with syntax and a semantics described using traditional formal logic [ logic_0_Intro.html ] plus sets, functions, relations, and other mathematical extensions.

For a more rigorous description of the standard notations see

1. STANDARD::= See http://www.csci.csusb.edu/dick/maths/math_11_STANDARD.html

# Glossary

2. above::reason="I'm too lazy to work out which of the above statements I need here", often the last 3 or 4 statements. The previous and previous but one statments are shown as (-1) and (-2).
3. given::reason="I've been told that...", used to describe a problem.
4. given::variable="I'll be given a value or object like this...", used to describe a problem.
5. goal::theorem="The result I'm trying to prove right now".
6. goal::variable="The value or object I'm trying to find or construct".
7. let::reason="For the sake of argument let...", introduces a temporary hypothesis that survives until the end of the surrounding "Let...Close.Let" block or Case.
8. hyp::reason="I assumed this in my last Let/Case/Po/...".
9. QED::conclusion="Quite Easily Done" or "Quod Erat Demonstrandum", indicates that you have proved what you wanted to prove.
10. QEF::conclusion="Quite Easily Faked", -- indicate that you have proved that the object you constructed fitted the goal you were given.
11. RAA::conclusion="Reducto Ad Absurdum". This allows you to discard the last assumption (let) that you introduced.