# 4.5: Index Sets

The notion of union can be extended to three sets: [Acup Bcup C = {xin{cal U} mid (xin A) vee (xin B) vee (xin C) }. onumber] We define

[igcup_{i=1}^n A_i = {xin{cal U} mid (xin A_1) vee (xin A_2) veecdotsvee (xin A_n)}. onumber] It looks messy! Here is a better alternative:

[igcup_{i=1}^n A_i ={xin{cal U} mid xin A_i mbox{ for } some , , i, mbox{ where } 1leq i leq n}. onumber]

In a similar manner, (igcap_{i=1}^n A_i = A_1 cap A_2 cap cdots cap A_n), and we define

[igcap_{i=1}^n A_i
= {xin{cal U} mid xin A_i mbox{ for } all , , i,
mbox{where } 1leq ileq n} onumber]

In plain English, (igcup_{i=1}^n A_i) is the collection of all elements in the (A_i)’s, and (igcap_{i=1}^n A_n) is the collection of all elements common to all (A_i)’s.

Example (PageIndex{1}label{eg:indexset-01})

For (i=1,2,3,ldots,), let (A_i = [-i,i]). First, construct several (A_i) for comparison, because it may help us detect any specific pattern. See Figure (PageIndex{1}) below. It is clear that (A_1 subset A_2 subset cdots,). Thus, (igcup_{i=1}^n A_i = [-n,n] = A_n), and (igcap_{i=1}^n A_i = [-1,1] = A_1).

hands-on Exercise (PageIndex{1}label{he:indexset-01})

Evaluate (igcup_{i=1}^n B_i) and (igcap_{i=1}^n B_i), where (B_i = [0,2i)).

It is obvious that we can also extend the upper bound to infinity. [egin{aligned} igcup_{i=1}^infty A_i &=& A_1 cup A_2 cup cdots = { xin{cal U} mid xin A_i mbox{ for }some , , i in mathbb{N} }, igcap_{i=1}^infty A_i &=& A_1 cap A_2 cap cdots = { xin{cal U} mid xin A_i mbox{ for } all , , i in mathbb{N} }. end{aligned} onumber] In some situations, we may borrow the idea of partial sums from calculus. We first find the union or intersection of the first (n) sets, then take the limit as (n) approaches infinity. Thus, if the limit is well-defined, the

[igcup_{i=1}^infty A_i = lim_{n oinfty} igcup_{i=1}^n A_i, qquadmbox{and}qquad igcap_{i=1}^infty A_i = lim_{n oinfty} igcap_{i=1}^n A_i. onumber]

Example (PageIndex{2}label{eg:indexset-02})

Let (A_i = [-i,i]). We have learned from the last example that (igcup_{i=1}^n A_i = [-n,n]) and (igcap_{i=1}^n A_i = [-1,1]). Hence, [igcup_{i=1}^infty A_i = lim_{n oinfty} [-n,n] = (-infty,infty), qquadmbox{and}qquad igcap_{i=1}^infty A_i = [-1,1]. onumber] Recall that we write ((-infty,infty)) instead of ([-infty,infty]) because (pminfty) are not numbers, they are merely symbols representing infinitely large values.

hands-on Exercise (PageIndex{2}label{he:indexset-02})

Evaluate (igcup_{i=1}^infty B_i) and (igcap_{i=1}^infty B_i), where (B_i = [0,2i)).

Example (PageIndex{3}label{eg:indexset-03})

Let (B_i = left(0,1-frac{1}{2i} ight]). Determine (igcup_{i=1}^infty B_i) and (igcap_{i=1}^infty B_i).

Solution

Once again, we have (B_1 subset B_2 subset cdots,). It is easy to check that [igcup_{i=1}^n B_i = B_n = left(0,1-frac{1}{2n} ight], qquadmbox{and}qquad igcap_{i=1}^n B_i = B_1 = left(0,frac{1}{2} ight]. onumber] It follows that [igcup_{i=1}^infty B_i = lim_{n oinfty} left(0,1-frac{1}{2n} ight] = (0,1), qquadmbox{and}qquad igcap_{i=1}^infty B_i = left(0,frac{1}{2} ight]. onumber] Note that (lim_{n oinfty} left(0,1-frac{1}{2n} ight] eq (0,1]) because the endpoint 1 does not belong to any (B_i).

hands-on Exercise (PageIndex{3}label{he:indexset-03})

Let (C_i = left[0,1-frac{1}{i} ight]). Determine (igcup_{i=1}^infty C_i) and (igcap_{i=1}^infty C_i).

Example (PageIndex{4}label{eg:indexset-04})

Let (D_i = left(1-frac{1}{i},1+frac{1}{i} ight)). Determine (igcup_{i=1}^infty D_i) and (igcap_{i=1}^infty D_i).

Solution

As the value of (i) increases, the value of (frac{1}{i}) decreases. Hence, the left endpoint (1-frac{1}{i}) increases, and the right endpoint (1+frac{1}{i}) decreases.

[egin{array}{|c|c|} hline i & D_i = ig(1-frac{1}{i},1+frac{1}{i}ig) hline 1 & (0,2) 2 & ig(frac{1}{2},frac{3}{2}ig) 3 & ig(frac{2}{3},frac{4}{3}ig) 4 & ig(frac{3}{4},frac{5}{4}ig) hline end{array} onumber]

It is clear that (D_1supseteq D_2 supseteq D_3 supseteq cdots,). Thus, (igcup_{i=1}^infty D_i = D_1 = (0,2)), and (igcap_{i=1}^infty D_i = {1}).

hands-on exercise (PageIndex{4}label{he:indexset-04})

Let (E_i = left[-i,1+frac{1}{i} ight)). Determine (igcup_{i=1}^infty E_i) and (igcap_{i=1}^infty E_i).

hands-on Exercise (PageIndex{5}label{he:indexset-05})

For each positive integer (i), define (F_i={i,i+1,i+2,ldots,3i}). Determine (igcup_{i=1}^infty F_i) and (igcap_{i=1}^infty F_i).

The next two results are obvious.

Theorem (PageIndex{1}label{subsetcap})

If (A_1 subseteq A_2 subseteq A_3 subseteq cdots,), then (igcap_{i=1}^infty A_i = A_1).

Theorem (PageIndex{2})

If (A_1 supseteq A_2 supseteq A_3 supseteq cdots), then (igcup_{i=1}^infty A_i = A_1).

How could we describe the union (A_2 cup A_4 cup A_6 cup cdots,)? Well, we can write [igcup_{i small , even} A_i, onumber] which means that union of (A_i), where (i) is even. Since the set of even positive integers is denoted by (2mathbb{N}), another way to describe the same union is [igcup_{iin2mathbb{N}} A_i. onumber] It means the union all (A_i), where (i) is taken out from the set (2mathbb{N}). Accordingly, [igcup_{i=0}^infty A_i = igcup_{iinmathbb{N}} A_i, qquadmbox{and}qquad igcap_{i=0}^infty A_i = igcap_{iinmathbb{N}} A_i. onumber] We can even go one step further, by allowing (i) to be taken from any set of integers, or any set of real numbers, or even any set of objects. The only restriction is that (A_i) must exist, and its content must somehow depend on (i).

In general, given a nonempty set (I), if we could associate with each (iin I) a set (A_i), we define the indexed family of sets ({cal A}) as [{cal A} = { A_i mid iin I }. onumber] We call (I) the index set, and define [egin{aligned} igcup_{iin I} A_i &=& { x mid xin A_i mbox{ for }some , , iin I }, igcap_{iin I} A_i &=& { x mid xin A_i mbox{ for } all , , iin I }. end{aligned} onumber] Let us look at a few examples.

Example (PageIndex{5}label{eg:indexset-05})

To describe the union [A_1cup A_3cup A_7cup A_{11}cup A_{23}, onumber] we first define the index set to be (I={1,3,7,11,23}), which is the set of all the subscripts used in the union. Now the union can be conveniently described as (igcup_{iin I} A_i).

Example (PageIndex{6}label{eg:indexset-06})

Consider five sets [egin{array}{r c l} A_1 &=& {1,4,23}, A_2 &=& {7,11,23}, A_3 &=& {3,6,9}, A_4 &=& {5,17,22}, A_5 &=& {3,6,23}. end{array} onumber] Let (I={2,5}), then [igcup_{iin I} A_i = A_2 cup A_5 = {7,11,23} cup {3,6,23} = {3,6,7,11,23}. onumber] Likewise, (igcap_{iin I} A_i = A_2 cap A_5 = {7,11,23} cap {3,6,23} = {23}).

hands-on Exercise (PageIndex{6}label{he:indexset-06})

Let (J={1,4,5}). Evaluate (igcup_{iin J} A_i) and (igcap_{iin J} A_i), where (A_i)s are defined in the last example.

hands-on Exercise (PageIndex{7}label{he:indexset-07})

An index set could be a set of any objects. For instance, the sets of numbers in the last example could be the favorite Lotto numbers of five different students. We could index these sets according to the names of the students: [egin{array}{r c l} A_{small John} &=& {1,4,23}, A_{small Mary} &=& {7,11,23}, A_{small Joe} &=& {3,6,9}, A_{small Pete} &=& {5,17,22}, A_{small Lucy} &=& {3,6,23}. end{array} onumber] If (I={mbox{Mary},mbox{Joe},mbox{Lucy}}), what is (igcup_{iin I})? How would you interpret its physical meaning?

example (PageIndex{7}label{eg:indexset-07})

Let (I = {xmid x mbox{ is a living human being} ,}), and define [egin{array}{r c l} B_i &=& { x in I mid x mbox{ is a child of } i }, A_i &=& { i } cup B_i end{array} onumber] for each (iin I). Then [igcap_{iin I} A_i = emptyset, qquad igcup_{iin I} A_i = I, qquad igcap_{iin I} B_i = emptyset, onumber] and [igcup_{iin I} B_i = I - { x mid xmbox{'s parents are both deceased},}. onumber] We leave it as an exercise to verify these unions and intersections.

hands-on Exercise (PageIndex{8}label{he:indexset-08})

Verify the intersection and union in the last example.

hands-onExercise (PageIndex{9}label{he:indexset-09})

If (I) represents a set of students, and (A_i) represents the set of friends of student (i), interpret the meaning of (igcup_{iin I} A_i) and (igcap_{iin I} A_i).

We close this section with yet another generalization of De Morgan’s laws.

Theorem (PageIndex{3}) Extended De Morgan's laws

For any nonempty index set (I), we have [overline{igcup_{iin I} A_i} = igcap_{iin I} overline{A_i}, qquadmbox{ and }qquad overline{igcap_{iin I} A_i} = igcup_{iin I} overline{A_i}. onumber]

Proof 1

Let (xin overline{igcup_{iin I} A_i}), then [x otin igcup_{iin I} A_i = { x mid xin A_i mbox{ for } some ,, iin I }. onumber] This means (x otin A_i) for every (iin I). Hence, (xin overline{A_i}) for each (iin I). Consequently, [xin igcap_{iin I} overline{A_i}. onumber] This proves that (overline{igcup_{iin I} A_i} subseteq igcap_{iin I} overline{A_i}).

Next, let (xin igcap_{iin I} overline{A_i}). Then (xin overline{A_i}) for each (iin I). This means (x otin A_i) for each (iin I). Then [x otin { x mid xin A_i mbox{ for }some ,, iin I } = igcup_{iin I} A_i. onumber] Thus, (xin overline{igcup_{iin I} A_i}), proving that (igcap_{iin I} overline{A_i} subseteq overline{igcup_{iin I} A_i}). We proved earlier that (overline{igcup_{iin I} A_i} subseteq igcap_{iin I} overline{A_i}). Therefore, the two sets must be equal.
The proof of (overline{igcap_{iin I} A_i} = igcup_{iin I} overline{A_i}) proceeds in a similar manner, and is left as an exercise.

Proof 2

We shall prove (overline{igcup_{iin I} A_i} = igcap_{iin I} overline{A_i}). We leave out the explanations for you to fill in: [egin{array}{r c l} xin overline{igcup_{iin I} A_i} &Leftrightarrow& overline{xin igcup_{iin I} A_i} &Leftrightarrow& overline{xin A_i mbox{ for some $i$}} &Leftrightarrow& x otin A_i mbox{ for all $i$} &Leftrightarrow& xin overline{A_i} mbox{ for all $i$} &Leftrightarrow& xin igcap_{iin I} overline{A_i}. end{array} onumber] The proof of (overline{igcap_{iin I} A_i} = igcup_{iin I} overline{A_i}) is left as an exercise.

## Summary and Review

• When dealing with arbitrary intersection or union of intervals, first identify the endpoints, then analyze the sets involved in the operation to determine whether an endpoint should be included or excluded.
• Intersection and union can be performed on a group of similar sets identified by subscripts belonging to an index set.
• Consequently, intersection or union can be formed by naming a specific index set.

## Exercises 4.5

Exercise (PageIndex{1}label{ex:indexset-01})

For each (ninmathbb{Z}^+), define (A_n=left(-frac{1}{n},2n ight)). Find (igcap_{n=1}^infty A_n) and (igcup_{n=1}^infty A_n).

Exercise (PageIndex{2}label{ex:indexset-02})

For each (ninmathbb{Z}^+), define (B_n = {minmathbb{Z} mid -frac{n}{2}leq mleq 3n}). Evaluate (igcap_{n=1}^infty B_n) and (igcup_{n=1}^infty B_n).

Exercise (PageIndex{3}label{ex:indexset-03})

Define (C_n={n,n+1,n+2,ldots,2n+1}) for each integer (ngeq0). Evaluate (igcap_{n=0}^infty C_n) and (igcup_{n=0}^infty C_n).

Exercise (PageIndex{4}label{ex:indexset-04})

For each (nin I = {1,2,3,ldots,100}), define (D_n=[-n,2n]capmathbb{Z}). Evaluate (igcap_{nin I} D_n) and (igcup_{nin I} D_n).

Exercise (PageIndex{5}label{ex:indexset-05})

For each (ninmathbb{N}), define (E_n = {-n,-n+1,-n+2,ldots,n^2}). Evaluate (igcap_{ninmathbb{N}} E_n) and (igcup_{ninmathbb{N}} E_n).

Exercise (PageIndex{6}label{ex:indexset-06})

For each (ninmathbb{N}), define (F_n = left{frac{m}{n} mid minmathbb{Z} ight}). Evaluate (igcap_{ninmathbb{N}} F_n) and (igcup_{ninmathbb{N}} F_n).

Exercise (PageIndex{7}label{ex:indexset-07})

Let (I=(0,1)), and define (A_i = left[1,frac{1}{i} ight]) for each (iin I). For instance (A_{0.5} = [1,2]) and (A_{frac{pi}{4}} = left[1,frac{4}{pi} ight]). Evaluate (igcup_{iin I} A_i) and (igcap_{iin I} A_i).

Exercise (PageIndex{8}label{ex:indexset-08})

Define (I=(0,1)), and for each (iin I), let (B_i=(-i,frac{1}{i})). Evaluate (igcup_{iin I} B_i = (-1,infty)) and (igcap_{iin I} B_i).

Exercise (PageIndex{9}label{ex:indexset-09})

Evaluate (igcap_{xin(1,2)} (1-2x,x^2)) and (igcup_{xin(1,2)} (1-2x,x^2)).

Exercise (PageIndex{10}label{ex:indexset-10})

Evaluate (igcap_{xin(0,1)} left(x,frac{1}{x} ight)) and (igcup_{xin(0,1)} left(x,frac{1}{x} ight)).

Exercise (PageIndex{11}label{ex:indexset-11})

Let the universal set be (mathbb{R}^2). For each (rin(0,infty)), define [A_r = {(x,y)mid y=rx^2}; onumber] that is, (A_r) is the set of points on the parabola (y=rx^2), where (r>0). Evaluate (igcap_{rin(0,infty)} A_r) and (igcup_{rin(0,infty)} A_r).

Exercise (PageIndex{12}label{ex:indexset-12})

Prove that ( overline{igcap_{iin I} A_i} = igcup_{iin I} overline{A_i}) for any nonempty index set (I).

## 4.5: Index Sets

The Improving Mathematics Education in Schools (TIMES) Project

Number and Algebra : Module 1Years : 7-8

In all sorts of situations we classify objects into sets of similar objects and count them. This procedure is the most basic motivation for learning the whole numbers and learning how to add and subtract them.

Such counting quickly throws up situations that may at first seem contradictory.

‘Last June, there were 15 windy days and 20 rainy days, yet 5 days were neither windy nor rainy.’

How can this be, when June only has 30 days? A Venn diagram, and the language of sets, easily sorts this out.

Let W be the set of windy days,
and R be the set of rainy days.
Let E be the set of days in June.
Then W and R together have size 25, so
the overlap between W and R is 10. The Venn diagram opposite displays the whole situation.

The purpose of this module is to introduce language for talking about sets, and some notation for setting out calculations, so that counting problems such as this can be sorted out. The Venn diagram makes the situation easy to visualise.

Describing and naming sets

A set is just a collection of objects, but we need some new words and symbols and diagrams to be able to talk sensibly about sets.

In our ordinary language, we try to make sense of the world we live in by classifying collections of things. English has many words for such collections. For example, we speak of ‘a flock of birds’, ‘a herd of cattle’, ‘a swarm of bees’ and ‘a colony of ants’.

We do a similar thing in mathematics, and classify numbers, geometrical figures and other things into collections that we call sets. The objects in these sets are called the elements of the set.

A set can be described by listing all of its elements. For example,

S = < 1, 3, 5, 7, 9 >,

which we read as ‘ S is the set whose elements are 1, 3, 5, 7 and 9’. The five elements of the set are separated by commas, and the list is enclosed between curly brackets.

A set can also be described by writing a description of its elements between curly brackets. Thus the set S above can also be written as

S = < odd whole numbers less than 10 >,

which we read as ‘S is the set of odd whole numbers less than 10’.

A set must be well defined . This means that our description of the elements of a set is clear and unambiguous. For example, < tall people >is not a set, because people tend to disagree about what ‘tall’ means. An example of a well-defined set is

T = < letters in the English alphabet >.

Two sets are called equal if they have exactly the same elements. Thus following the usual convention that ‘y’ is not a vowel,

< vowels in the English alphabet >=

On the other hand, the sets < 1, 3, 5 >and < 1, 2, 3 >are not equal, because they have different elements. This is written as

< 1, 3, 5 >&ne < 1, 2, 3 >.

The order in which the elements are written between the curly brackets does not matter at all. For example,

< 1, 3, 5, 7, 9 >= < 3, 9, 7, 5, 1 >= < 5, 9, 1, 3, 7 >.

If an element is listed more than once, it is only counted once. For example,

< a , a , b >= < a , b >.

The set < a , a , b >has only the two elements a and b . The second mention of a is an unnecessary repetition and can be ignored. It is normally considered poor notation to list an element more than once.

The phrases ‘is an element of’ and ‘is not an element of’ occur so often in discussing sets that the special symbols &isin and ¬in are used for them. For example, if A = < 3, 4, 5, 6 >, then

3 &isin A (Read this as ‘3 is an element of the set A ’.)

8 ¬in A (Read this as ‘8 is not an element of the set A ’.)

Describing and naming sets

• A set is a collection of objects, called the elements of the set.
• A set must be well defined , meaning that its elements can be described and
listed without ambiguity. For example:
• Two sets are called equal if they have exactly the same elements.
• The order is irrelevant.
• Any repetition of an element is ignored.
• If a is an element of a set S , we write a &isin S .
• If b is not an element of a set S , we write b ¬in S .

a Specify the set A by listing its elements, where
A = < whole numbers less than 100 divisible by 16 >.
b Specify the set B by giving a written description of its elements, where
B = < 0, 1, 4, 9, 16, 25 >.
c Does the following sentence specify a set?
C = < whole numbers close to 50 >.

All the sets we have seen so far have been finite sets, meaning that we can list all their elements. Here are two more examples:

< whole numbers between 2000 and 2005 >=

< whole numbers between 2000 and 3000 >=

The three dots ‘…’ in the second example stand for the other 995 numbers in the set. We could have listed them all, but to save space we have used dots instead. This notation can only be used if it is completely clear what it means, as in this situation.

A set can also be infinite &minus all that matters is that it is well defined. Here are two examples of infinite sets:

< even whole numbers >=

< whole numbers greater than 2000 >=

Both these sets are infinite because no matter how many elements we list, there are always more elements in the set that are not on our list. This time the dots ‘…’ have a slightly different meaning, because they stand for infinitely many elements that we could not possibly list, no matter how long we tried.

The numbers of elements of a set

If S is a finite set, the symbol | S | stands for the number of elements of S . For example:

If S = < 1, 3, 5, 7, 9 >, then | S | = 5.

If A = < 1001, 1002, 1003, …, 3000 >, then | A | = 2000.

If T = < letters in the English alphabet >, then | T | = 26.

The set S = < 5 >is a one-element set because | S | = 1. It is important to distinguish between the number 5 and the set S = < 5 >:

5 &isin S but 5 &ne S .

The symbol &empty represents the empty set, which is the set that has no elements at all. Nothing in the whole universe is an element of &empty :

| &empty | = 0 and x ¬in &empty , no matter what x may be.

There is only one empty set, because any two empty sets have exactly the same elements, so they must be equal to one another.

• A set is called finite if we can list all of its elements.
• An infinite set has the property that no matter how many elements we list,
there are always more elements in the set that are not on our list.
• If S is a finite set, the symbol | S | stands for the number of elements of S .
• The set with no elements is called the empty set, and is written as &empty .
Thus | &empty | = 0.
• A one-element set is a set such as S = < 5 >with | S | = 1.

a Use dots to help list each set, and state whether it is finite or infinite.
i B = < even numbers between 10 000 and 20 000 >
ii A = < whole numbers that are multiples of 3 >
b If the set S in each part is finite, write down | S |.
i S = < primes >
ii S = < even primes >
iii S = < even primes greater than 5 >
iv S = < whole numbers less than 100 >
c Let F be the set of fractions in simplest form between 0 and 1 that can be written with a single-digit denominator. Find F and | F |.

Subsets and Venn diagrams

Sets of things are often further subdivided. For example, owls are a particular type of bird, so every owl is also a bird. We express this in the language of sets by saying that the set of owls is a subset of the set of birds.

A set S is called a subset of another set T if every element of S is an element of T . This is written as

S &sube T (Read this as ‘ S is a subset of T ’.)

The new symbol &sube means ‘is a subset of’. Thus < owls >&sube < birds >because every owl is a bird. Similarly,

if A = < 2, 4, 6 >and B = < 0, 1, 2, 3, 4, 5, 6 >, then A &sube B ,

because every element of A is an element of B .

The sentence ‘ S is not a subset of T ’ is written as

S T .

This means that at least one element of S is not an element of T . For example,

< birds >

because an ostrich is a bird, but it does not fly. Similarly,

if A = < 0, 1, 2, 3, 4 >and B = < 2, 3, 4, 5, 6 >, then A B,

The set itself and the empty set are always subsets

Any set S is a subset of itself, because every element of S is an element of S . For example:

< birds >&sube < birds >and < 1, 2, 3, 4, 5, 6 >= < 1, 2, 3, 4, 5, 6 >.

Furthermore, the empty set &empty is a subset of every set S , because every element of the empty set is an element of S , there being no elements in &empty at all. For example:

&empty &sube < birds >and &empty &sube < 1, 2, 3, 4, 5, 6 >.

Every element of the empty set is a bird, and every element of the empty set is one of the numbers 1, 2, 3, 4, 5 or 6.

Subsets and the words ‘all’ and ‘if … then’

A statement about subsets can be rewritten as a sentence using the word ‘all’.
For example,

‘All multiples of 4 are even.’

‘Not all rectangles are rhombuses.’

They can also be rewritten using the words ‘if … then’. For example,

 < owls >&sube means ‘If a creature is an owl, then it is a bird.’ < multiples of 4 >&sube means ‘If a number is a multiple of 4, then it is even’: < rectangles >&sube means ‘If a figure is a rectangle, then it may not be a square.’

Diagrams make mathematics easier because they help us to see the whole situation at a glance. The English mathematician John Venn (1834&minus1923) began using diagrams to represent sets. His diagrams are now called Venn diagrams .

In most problems involving sets, it is convenient to choose a larger set that contains all of the elements in all of the sets being considered. This larger set is called the universal set , and is usually given the symbol E. In a Venn diagram, the universal set is generally drawn as a large rectangle, and then other sets are represented by circles within this rectangle.

For example, if V = < vowels >, we could choose the universal set as E = < letters of the alphabet >and all the letters of the alphabet would then need to be placed somewhere within the rectangle, as shown below.

In the Venn diagram below, the universal set is E = < 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 >, and each of these numbers has been placed somewhere within the rectangle.

The region inside the circle represents the set A of odd whole numbers between 0 and 10. Thus we place the numbers 1, 3, 5, 7 and 9 inside the circle, because A = < 1, 3, 5, 7, 9 >. Outside the circle we place the other numbers 0, 2, 4, 6, 8 and 10 that are in E but not in A .

Representing subsets on a Venn diagram

When we know that S is a subset of T , we place the circle representing S inside the circle representing T . For example, let S = < 0, 1, 2 >, and T = < 0, 1, 2, 3, 4 >. Then S is a subset of T , as illustrated in the Venn diagram below.

Make sure that 5, 6, 7, 8, 9 and 10 are placed outside both circles>

Subsets and the number line

The whole numbers are the numbers 0, 1, 2, 3,… These are often called the ‘counting numbers’, because they are the numbers we use when counting things. In particular, we have been using these numbers to count the number of elements of finite sets. The number zero is the number of elements of the empty set.

The set of all whole numbers can be represented by dots on the number line.

Any finite subset of set of whole numbers can be represented on the number line. For example, here is the set < 0, 1, 4 >.

• If all the elements of a set S are elements of another set T , then S is called a subset of T . This is written as S &sube T .
• If at least one element of S is not an element of T , then S is not a subset of T . This is written as S T .
• If S is any set, then &empty &sube S and S &sube S .
• A statement about a subset can be rewritten using the words ‘all’ or ‘if … then’.
• Subsets can be represented using a Venn diagram .
• The set < 0, 1, 2, 3, 4, … >of whole numbers is infinite.
• The set of whole numbers, and any finite subset of them, can be represented on the number line.

a Rewrite in set notation:
i All squares are rectangles.
ii Not all rectangles are rhombuses.
b Rewrite in an English sentence using the words ‘all’ or ‘not all’:
i < whole number multiples of 6 >&sube < even whole numbers >.
ii < square whole numbers >&sube < even whole numbers >.
c Rewrite the statements in part (b) in an English sentence using the words ‘if …, then’.
d Given the sets A = < 0, 1, 4, 5 >and B = < 1, 4 >:
i Draw a Venn diagram of A and B using the universal set U = < 0, 1, 2, … , 8 >.
ii Graph A on the number line.

Complements, intersections and unions

Suppose that a suitable universal set E has been chosen. The complement of a set S
is the set of all elements of E that are not in S . The complement of S is written as S c .
For example,

If E = < letters >and V = < vowels >, then V c =

/>If E = < whole numbers >and O = < odd whole numbers >,
/>then O c = .

Complement and the word ‘not’

The word ‘not’ corresponds to the complement of a set. For example, in the two examples above,

V c = < letters that are not vowels >=

O c = < whole numbers that are not odd >=

The set V c in the first example can be represented on a Venn diagram as follows.

The intersection of two sets

The intersection of two sets A and B consists of all elements belonging to A and to B .
This is written as A &cap B . For example, some musicians are singers and some play an instrument.

Here is an example using letters.

This last example can be represented on a Venn diagram as follows.

Intersection and the word ‘and’

The word ‘and’ tells us that there is an intersection of two sets. For example:

< singers >&cap < instrumentalists >=

< vowels >&cap < letters of ‘dingo’ >=

The union of two sets A and B consists of all elements belonging to A or to B . This is written as A &cup B . Elements belonging to both set belong to the union. Continuing with the example of singers and instrumentalists:

If A = < singers >and B = < instrumentalists >, then A &cup B = < musical performers >.

In the case of the sets of letters:

If V = < vowels >and F = < letters in ‘dingo’ >, then V &acup F = < a, e, i, o, u, d, n, g >.

The word ‘or’ tells us that there is a union of two sets. For example:

< singers >&cup < instrumentalists >=

< vowels >&cup < letters in ‘dingo’ >=

The word ‘or’ in mathematics always means ‘and/or’, so there is no need to add ‘or both’ to these descriptions of the unions. For example,

Here the elements 6 and 12 are in both sets A and B .

Two sets are called disjoint if they have no elements in common. For example:

The sets S = < 2, 4, 6, 8 >and T = < 1, 3, 5, 7 >are disjoint.

Another way to define disjoint sets is to say that their intersection is the empty set,

Two sets A and B are disjoint if A &cap B = &empty .

S &cap T = &empty because no number lies in both sets.

Complement, intersection and union

Let A and B be subsets of a suitable universal set E .

• The complement A c is the set of all elements of E that are not in A .
• The intersection A &cap B is the set of all elements belonging to A and to B .
• The union A &cup B is the set of all elements belonging to A or to B .
• In mathematics, the word ‘or’ always means ‘and/or’, so all the elements that
are in both sets are in the union.
• The sets A and B are called disjoint if they have no elements in common, that is,
if A &cap B = &empty .

Representing the complement on a Venn diagram

Let A = < 1, 3, 5, 7, 9 >be the set of odd whole numbers less than 10, and take the universal set as E = < 0, 1, 2, … , 10 >. Here is the Venn diagram of the situation.

The region inside the circle represents the set A , so we place the numbers 1, 3, 5, 7 and 9 inside the circle. Outside the circle, we place the other numbers 0, 2, 4, 6, 8 and 10 that are not in A . Thus the region outside the circle represents the complement A c = <0, 2, 4, 6, 8, 10>.

Representing the intersection and union on a Venn diagram

The Venn diagram below shows the two sets

A = < 1, 3, 5, 7, 9 >and B = < 1, 2, 3, 4, 5 >.

• The numbers 1, 3 and 5 lie in both sets, so we place them in the overlapping region of the two circles.
• The remaining numbers in A are 7 and 9. These are placed inside A , but outside B .
• The remaining numbers in B are 2 and 4. These are placed inside B , but outside A .

Thus the overlapping region represents the intersection A &cap B = < 1, 3, 5 >, and the two circles together represent the union A &cup B = < 1, 2, 3, 4, 5, 7, 9 >.

The four remaining numbers 0, 6, 8 and 10 are placed outside both circles.

Representing disjoint sets on a Venn diagram

When we know that two sets are disjoint, we represent them by circles that do not intersect. For example, let

P = < 0, 1, 2, 3 >and Q =

Then P and Q are disjoint, as illustrated in the Venn diagram below.

Venn diagrams with complements, unions and intersections

• Sets are represented in a Venn diagram by circles drawn inside a rectangle representing the universal set.
• The region outside the circle represents the complement of the set.
• The overlapping region of two circles represents the intersection of the two sets.
• Two circles together represent the union of the two sets.
• When two sets are disjoint, we can draw the two circles without any overlap.
• When one set is a subset of another, we can draw its circle inside the circle of the other set.

Let the universal set be E = , and let

A =

B =

C =

a Draw A and C on a Venn diagram, and place the numbers in the correct regions.
b Draw B and C on a Venn diagram, and place the numbers in the correct regions.
c Shade A &cap B on a Venn diagram, and place the numbers in the correct regions.
d Shade A &cup B on a Venn diagram, and place the numbers in the correct regions.

Solving problems using a Venn diagram

Keeping count of elements of sets

Before solving problems with Venn diagrams, we need to work out how to keep count of the elements of overlapping sets.

The upper diagram to the right shows two
sets A and B inside a universal set E , where

| A | = 6 and | B | = 7,

with 3 elements in the intersection A &cap B.

The lower diagram to the right shows only the
number of elements in each of the four regions.

These numbers are placed inside round brackets
so that they don’t look like elements.

You can see from the diagrams that

| A | = 6 and | B | = 7, but | A &cup B | &ne 6 + 7.

The reason for this is that the elements inside the overlapping region A &cap B should only be counted once, not twice. When we subtract the three elements of A &cap B from the total, the calculation is then correct.

In the diagram to the right,

| A | = 15, | B | = 25, | A &cap B | = 5 and | E | = 50.

a Insert the number of elements into each
of the four regions.
b Hence find | A &cup B | and | A &cap B c |

a We begin at the intersection and work outwards.

The intersection A &cap B has 5 elements.

Hence the region of A outside A &cap B has 10 elements,
and the region of B outside A &cap B has 20 elements.

This makes 35 elements so far, so the outer region has 15 elements.
b From the diagram, | A &cup B | = 35 and | A &cap B c | = 10.

a Draw a Venn diagram of two sets S and T
b Given that | S | = 15, | T | = 20, | S &cup T | = 25 and | E | = 50, insert the number of elements into each of the four regions.
c Hence find | S &cap T | and | S &cap T c |.

Number of elements in the regions of a Venn diagram

 &bull The numbers of elements in the regions of a Venn diagram can be done by working systematically around the diagram. &bull The number of elements in the union of two sets A and B is &bull Number of elements in A &cup B = number of elements in A &bull Number of elements in A &cup B = number of elements in A + number of elements in B &minus number of elements in A &cap B . &bull Writing this formula in symbols, | A &cup B | = | A | + | B | &minus | A &cap B |.

Solving problems by drawing a Venn diagram

Many counting problems can be solved by identifying the sets involved, then drawing up a Venn diagram to keep track of the numbers in the different regions of the diagram.

A travel agent surveyed 100 people to find out how many of them had visited the cities of
Melbourne and Brisbane. Thirty-one people had visited Melbourne, 26 people had been to Brisbane, and 12 people had visited both cities. Draw a Venn diagram to find the number of people who had visited:

a Melbourne or Brisbane

b Brisbane but not Melbourne

c only one of the two cities

d neither city.

Let M be the set of people who had
visited Melbourne, and let B be the set
of people who had visited Brisbane.
Let the universal set E be the set of
people surveyed.

The information given in the question can now be rewritten as

| M | = 31, | B | = 26, | M &cap B | = 12 and | E | = 100.

 Hence number in M only = 31 &minus 12 = 19 and number in B only = 26 &minus 12 = 14.

a Number visiting Melbourne or Brisbane = 19 + 14 ი = 45.

b Number visiting Brisbane only = 14.

c Number visiting only one city = 19 + 14 = 33.

d Number visiting neither city = 100 &minus 45 = 55.

Problem solving using Venn diagrams

• First identify the sets involved.
• Then construct a Venn diagram to keep track of the numbers in the different regions of the diagram.

Twenty-four people go on holidays. If 15 go swimming, 12 go fishing, and 6 do neither, how many go swimming and fishing? Draw a Venn diagram and fill in the number of people in all four regions.

In a certain school, there are 180 pupils in Year 7. One hundred and ten pupils study French, 88 study German and 65 study Indonesian. Forty pupils study both French and German, 38 study German and German only. Find the number of pupils who study:

either one ot two of the three languages.

The examples in this module have shown how useful sets and Venn diagrams are in counting problems. Such problems will continue to present themselves throughout secondary school.

The language of sets is also useful for understanding the relationships between objects of different types. For example, we have met various sorts of numbers, and we can summarise some of our knowledge very concisely by writing

< whole numbers >&sube < integers >&sube < rational numbers >&sube < real numbers >.

The relationships amongst types of special quadrilaterals is more complicated. Here are some statements about them.

< squares >&sube < rectangles >&sube < parallelograms >&sube

< rectangles >&cap < rhombuses >=

If A = < convex kites >and B = < non-convex kites >, then

A &cap B = &empty and A &cup B =

That is, the set of convex kites and the set of non-convex kites are disjoint, but their union is the set of all kites.

It is far easier to talk about probability using the language of sets. The set of all outcomes is called the sample space , a subset of the sample space is called an event . Thus when we throw three coins, we can take the sample space as the set

S =

and the event ‘throwing at least one head and at least one tail’ is then the subset

E =

Since each outcome is equally likely,

P (at least one head and at least one tail) = = .

The event space of the complementary event ‘throwing all heads or all tails’ is the complement of the event space in the sample space, which we take as the universal set, so

E c = < HHH, TTT >.

Since | E | + | E c | = | S |, it follows after dividing by | S | that P ( E c ) = 1 &minus P ( E ), so

P (throwing all head or all tails) = 1 &minus = .

Let F be the event ‘throwing at least two heads’. Then

F =

A Venn diagram is the best way to sort out the relationship between the two events E and F . We can then conclude that

P ( E and F ) = 3 and P ( E or F ) = 7

When we discuss a function, we usually want to write down its domain &minus the set of all x -values that we can substitute into it, and its range &minus the set of all y -values that result from such substitutions.

For example, for the function y = x 2 ,

domain = < real numbers >and range = < y : y ≥ 0>.

The notation used here for the range is ‘set-builder notation’, which is no longer taught in school. Consequently we mostly avoid set notation altogether, and use instead less rigorous language,

‘The domain is all real numbers, and the range is y > 0.’

Speaking about the condition rather than about the set, however, can confuse some students, and it is often useful to demonstrate the set theory ideas lying behind the abbreviated notation.

Here are two inequalities involving absolute value and their solution.

If we use the language of solution sets, and pay attention to ‘and’ and ‘or’, we see that the solution of the first inequality is the intersection of two sets, and the solution of the second inequality is the union of two sets. In set-builder notation, the solutions to the two inequalities are

< x : x ≥ &minus5 >&cap < x : x ≤ 5 >= < x : &minus5 ≤ x ≤ 5>, and

< x : x ≤ &minus5 >&cap < x : x ≥ 5 >= < x : x £ &minus5 or x ≥ 5>.

At school, however, we simply write the solutions to the two inequalities as the conditions alone,

&minus5 ≤ x ≤ 5 and x ≤ &minus5 or x ≥ 5

There are many similar situations where the more precise language of sets may
help to clarify the solutions of equations and inequalities when difficulties are raised during discussions.

Counting problems go back to ancient times. Questions about ‘infinity’ were also keenly discussed by mathematicians in the ancient world. The idea of developing a ‘theory of sets’, however, only began with publications of the German mathematician Georg Cantor in the 1870s, who was encouraged in his work by Karl Weierstrass and Richard Dedekind, two of the greatest mathematicians of all time.

Cantor’s work involved the astonishing insight that there are infinitely many different types of infinity. In the hierarchy of infinities that he discovered, the infinity of the whole numbers is the smallest type of infinity, and is the same as the infinity of the integers and of the rational numbers. He was able to prove, quite simply, that the infinity of the real numbers is very much larger, and that the infinity of functions is much larger again. His work caused a sensation and some Catholic theologians criticised his work as jeopardising ‘God’s exclusive claim to supreme infinity’.

Cantor’s results about types of infinity are spectacular and not particularly difficult. The topic is quite suitable as extension work at school, and the basic ideas have been presented in some details in Appendix 2 of the Module The Real Numbers .

Cantor’s original version of set theory is now regarded as ‘naive set theory’, and contains contradictions. The most famous of these contradictions is called ‘Russell’s paradox’, after the British philosopher and mathematician Bertrand Russell. It is a version of the ancient barber-paradox,

‘A barber shaves all those who do not shave themselves. Who shaves the barber?’

‘Sets that are members of themselves are rather unwelcome objects.

In order to distinguish such tricky sets from the ordinary, well-behaved sets,

let S be the set of all sets that are not members of themselves.

But when we consider the set S itself, we have a problem.

If S is a member of S , then S is not a member of S .

If S is not a member of S , then S is a member of S .

The best-known response, but by no means the only response, to this problem and to the other difficulties of ‘naive set theory’ is an alternative, extremely sophisticated, formulation of set theory called ‘Zermelo-Fraenkel set theory’, but it is hardly the perfect solution. While no contradictions have been found,many disturbing theorems have been proven. Most famously, Kurt Goedel proved in 1931 that it is impossible to prove that Zermelo-Fraenkel set theory, and indeed any system of axioms within which the whole numbers can be constructed, does not contain a contradiction!

Nevertheless, set theory is now taken as the absolute rock-bottom foundation of mathematics, and every other mathematical idea is defined in terms of set theory. Thus despite the paradoxes of set theory, all concepts in geometry, arithmetic, algebra and calculus &minus and every other branch of modern mathematics &minus are defined in terms of sets, and have their logical basis in set theory.

a A = < 0, 16, 32, 48, 64, 80, 96 >.

b The most obvious answer is B = < square numbers less than 30 >.

c No, because I don’t know precisely enough what ‘close to’ means.

 a i A = < 10 002, 10 004, … , 19 998 >is finite. ii B = < 0, 3, 6, … >is infinite. b i This set is infinite. ii | S | = 1. iii | S | = 0. iv | S | = 100. c F = , , , , , , , , , , , , , , , , , , , , , , , , , , so | F | = 27.

 a i < squares >&sube < rectangles >. ii < rectangles >&sube < rhombuses >. b i All multiples of 6 are even. ii Not all squares are even. c i If a whole number is a multiple of 6, then it is even. ii If a whole number is a square, then it may not be even.
 d i ii

 a&minusd

The union S &cup T has 25 elements, whereas S has 15 elements and T has 20 elements, so the overlap S &cap T has 10 elements.

Hence the region of S outside S &cap T has 5 elements, and the region of T outside S &cap T has 10 elements. Hence the outer region has 50 &minus 25 = 25 elements.

c From the diagram, | S &cap T | = 10 and | S &cup Tc | = 40.

Since only 18 people are involved in swimming or fishing and 15 + 12 = 27, there are 9 people who go swimming and fishing.

a 9 b 10 c 12 d 168 e 159

The Improving Mathematics Education in Schools (TIMES) Project 2009-2011 was funded by the Australian Government Department of Education, Employment and Workplace Relations.

The views expressed here are those of the author and do not necessarily represent the views of the Australian Government Department of Education, Employment and Workplace Relations.

For examples, see the post:

This section assumes you have loaded or generated your data by other means and it is now represented using Python lists.

Let’s look at converting your data in lists to NumPy arrays.

### One-Dimensional List to Array

You can convert a one-dimensional list of data to an array by calling the array() NumPy function.

Running the example converts the one-dimensional list to a NumPy array.

### Two-Dimensional List of Lists to Array

It is more likely in machine learning that you will have two-dimensional data.

That is a table of data where each row represents a new observation and each column a new feature.

Perhaps you generated the data or loaded it using custom code and now you have a list of lists. Each list represents a new observation.

You can convert your list of lists to a NumPy array the same way as above, by calling the array() function.

Running the example shows the data successfully converted.

## What's new in .NET Framework 4.7.2

.NET Framework 4.7.2 includes new features in the following areas:

A continuing focus in .NET Framework 4.7.2 is improved accessibility, which allows an application to provide an appropriate experience for users of Assistive Technology. For information on accessibility improvements in .NET Framework 4.7.2, see What's new in accessibility in .NET Framework.

#### Base classes

.NET Framework 4.7.2 features a large number of cryptographic enhancements, better decompression support for ZIP archives, and additional collection APIs.

New overloads of RSA.Create and DSA.Create

The DSA.Create(DSAParameters) and RSA.Create(RSAParameters) methods let you supply key parameters when instantiating a new DSA or RSA key. They allow you to replace code like the following:

The DSA.Create(Int32) and RSA.Create(Int32) methods let you generate new DSA or RSA keys with a specific key size. For example:

Rfc2898DeriveBytes constructors accept a hash algorithm name

The Rfc2898DeriveBytes class has three new constructors with a HashAlgorithmName parameter that identifies the HMAC algorithm to use when deriving keys. Instead of using SHA-1, developers should use a SHA-2-based HMAC like SHA-256, as shown in the following example:

Support for ephemeral keys

PFX import can optionally load private keys directly from memory, bypassing the hard drive. When the new X509KeyStorageFlags.EphemeralKeySet flag is specified in an X509Certificate2 constructor or one of the overloads of the X509Certificate2.Import method, the private keys will be loaded as ephemeral keys. This prevents the keys from being visible on the disk. However:

Since the keys are not persisted to disk, certificates loaded with this flag are not good candidates to add to an X509Store.

Keys loaded in this manner are almost always loaded via Windows CNG. Therefore, callers must access the private key by calling extension methods, such as cert.GetRSAPrivateKey(). The X509Certificate2.PrivateKey property does not function.

Since the legacy X509Certificate2.PrivateKey property does not work with certificates, developers should perform rigorous testing before switching to ephemeral keys.

Programmatic creation of PKCS#10 certification signing requests and X.509 public key certificates

Starting with .NET Framework 4.7.2, workloads can generate certificate signing requests (CSRs), which allows certificate request generation to be staged into existing tooling. This is frequently useful in test scenarios.

For more information and code examples, see "Programmatic creation of PKCS#10 certification signing requests and X.509 public key certificates" in the .NET Blog.

New SignerInfo members

Starting with .NET Framework 4.7.2, the SignerInfo class exposes more information about the signature. You can retrieve the value of the System.Security.Cryptography.Pkcs.SignerInfo.SignatureAlgorithm property to determine the signature algorithm used by the signer. SignerInfo.GetSignature can be called to get a copy of the cryptographic signature for this signer.

Leaving a wrapped stream open after CryptoStream is disposed

Starting with .NET Framework 4.7.2, the CryptoStream class has an additional constructor that allows Dispose to not close the wrapped stream. To leave the wrapped stream open after the CryptoStream instance is disposed, call the new CryptoStream constructor as follows:

Decompression changes in DeflateStream

Starting with .NET Framework 4.7.2, the implementation of decompression operations in the DeflateStream class has changed to use native Windows APIs by default. Typically, this results in a substantial performance improvement.

Support for decompression by using Windows APIs is enabled by default for applications that target .NET Framework 4.7.2. Applications that target earlier versions of .NET Framework but are running under .NET Framework 4.7.2 can opt into this behavior by adding the following AppContext switch to the application configuration file:

.NET Framework 4.7.2 adds a number of new APIs to the SortedSet<T> and HashSet<T> types. These include:

TryGetValue methods, which extend the try pattern used in other collection types to these two types. The methods are:

Enumerable.To* extension methods, which convert a collection to a HashSet<T>:

New HashSet<T> constructors that let you set the collection's capacity, which yields a performance benefit when you know the size of the HashSet<T> in advance:

#### ASP.NET

Support for dependency injection in Web Forms

Dependency injection (DI) decouples objects and their dependencies so that an object's code no longer needs to be changed just because a dependency has changed. When developing ASP.NET applications that target .NET Framework 4.7.2, you can:

Use setter-based, interface-based, and constructor-based injection in handlers and modules, Page instances, and user controls of ASP.NET web application projects.

Use setter-based and interface-based injection in handlers and modules, Page instances, and user controls of ASP.NET web site projects.

Plug in different dependency injection frameworks.

SameSite prevents a browser from sending a cookie along with a cross-site request. .NET Framework 4.7.2 adds a HttpCookie.SameSite property whose value is a System.Web.SameSiteMode enumeration member. If its value is SameSiteMode.Strict or SameSiteMode.Lax, ASP.NET adds the SameSite attribute to the set-cookie header. SameSite support applies to HttpCookie objects, as well as to FormsAuthentication and System.Web.SessionState cookies.

You can set SameSite for an HttpCookie object as follows:

You can also configure SameSite cookies at the application level by modifying the web.config file:

You can add SameSite for FormsAuthentication and System.Web.SessionState cookies by modifying the web config file:

#### Networking

Implementation of HttpClientHandler properties

.NET Framework 4.7.1 added eight properties to the System.Net.Http.HttpClientHandler class. However, two threw a PlatformNotSupportedException. .NET Framework 4.7.2 now provides an implementation for these properties. The properties are:

#### SQLClient

Support for Azure Active Directory Universal Authentication and Multi-Factor authentication

Growing compliance and security demands require that many customers use multi-factor authentication (MFA). In addition, current best practices discourage including user passwords directly in connection strings. To support these changes, .NET Framework 4.7.2 extends SQLClient connection strings by adding a new value, "Active Directory Interactive", for the existing "Authentication" keyword to support MFA and Azure AD Authentication. The new interactive method supports native and federated Azure AD users as well as Azure AD guest users. When this method is used, the MFA authentication imposed by Azure AD is supported for SQL databases. In addition, the authentication process requests a user password to adhere to security best practices.

In previous versions of .NET Framework, SQL connectivity supported only the SqlAuthenticationMethod.ActiveDirectoryPassword and SqlAuthenticationMethod.ActiveDirectoryIntegrated options. Both of these are part of the non-interactive ADAL protocol, which does not support MFA. With the new SqlAuthenticationMethod.ActiveDirectoryInteractive option, SQL connectivity supports MFA as well as existing authentication methods (password and integrated authentication), which allows users to enter user passwords interactively without persisting passwords in the connection string.

For more information and an example, see "SQL -- Azure AD Universal and Multi-factor Authentication Support" in the .NET Blog.

Support for Always Encrypted version 2

NET Framework 4.7.2 adds supports for enclave-based Always Encrypted. The original version of Always Encrypted is a client-side encryption technology in which encryption keys never leave the client. In enclave-based Always Encrypted, the client can optionally send the encryption keys to a secure enclave, which is a secure computational entity that can be considered part of SQL Server but that SQL Server code cannot tamper with. To support enclave-based Always Encrypted, .NET Framework 4.7.2 adds the following types and members to the System.Data.SqlClient namespace:

SqlConnectionStringBuilder.EnclaveAttestationUrl, which specifies the Uri for enclave-based Always Encrypted.

SqlColumnEncryptionEnclaveProvider, which is an abstract class from which all enclave providers are derived.

SqlEnclaveSession, which encapsulates the state for a given enclave session.

SqlEnclaveAttestationParameters, which provides the attestation parameters used by SQL Server to get information required to execute a particular Attestation Protocol.

The application configuration file then specifies a concrete implementation of the abstract System.Data.SqlClient.SqlColumnEncryptionEnclaveProvider class that provides the functionality for the enclave provider. For example:

The basic flow of enclave-based Always Encrypted is:

The user creates an AlwaysEncrypted connection to SQL Server that supported enclave-based Always Encrypted. The driver contacts the attestation service to ensure that it is connecting to right enclave.

Once the enclave has been attested, the driver establishes a secure channel with the secure enclave hosted on SQL Server.

The driver shares encryption keys authorized by the client with the secure enclave for the duration of the SQL connection.

#### Windows Presentation Foundation

Finding ResourceDictionaries by Source

Starting with .NET Framework 4.7.2, a diagnostic assistant can locate the ResourceDictionaries that have been created from a given source Uri. (This feature is for use by diagnostic assistants, not by production applications.) A diagnostic assistant such as Visual Studio's "Edit-and-Continue" facility lets its user edit a ResourceDictionary with the intent that the changes be applied to the running application. One step in achieving this is finding all the ResourceDictionaries that the running application has created from the dictionary that's being edited. For example, an application can declare a ResourceDictionary whose content is copied from a given source URI:

A diagnostic assistant that edits the original markup in MyRD.xaml can use the new feature to locate the dictionary. The feature is implemented by a new static method, ResourceDictionaryDiagnostics.GetResourceDictionariesForSource. The diagnostic assistant calls the new method using an absolute Uri that identifies the original markup, as illustrated by the following code:

The method returns an empty enumerable unless VisualDiagnostics is enabled and the ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO environment variable is set.

Finding ResourceDictionary owners

Starting with .NET Framework 4.7.2, a diagnostic assistant can locate the owners of a given ResourceDictionary. (The feature is for use by diagnostic assistants and not by production applications.) Whenever a change is made to a ResourceDictionary, WPF automatically finds all DynamicResource references that might be affected by the change.

A diagnostic assistant such as Visual Studio's "Edit-and-Continue" facility may want to extend this to handle StaticResource references. The first step in this process is to find the owners of the dictionary that is, to find all the objects whose Resources property refers to the dictionary (either directly, or indirectly via the ResourceDictionary.MergedDictionaries property). Three new static methods implemented on the System.Windows.Diagnostics.ResourceDictionaryDiagnostics class, one for each of the base types that has a Resources property, support this step:

These methods return an empty enumerable unless VisualDiagnostics is enabled and the ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO environment variable is set.

Finding StaticResource references

A diagnostic assistant can now receive a notification whenever a StaticResource reference is resolved. (The feature is for use by diagnostic assistants, not by production applications.) A diagnostic assistant such as Visual Studio's "Edit-and-Continue" facility may want to update all uses of a resource when its value in a ResourceDictionary changes. WPF does this automatically for DynamicResource references, but it intentionally does not do so for StaticResource references. Starting with .NET Framework 4.7.2, the diagnostic assistant can use these notifications to locate those uses of the static resource.

This event is raised whenever the runtime resolves a StaticResource reference. The StaticResourceResolvedEventArgs arguments describe the resolution, and indicate the object and property that host the StaticResource reference and the ResourceDictionary and key used for the resolution:

The event is not raised (and its add accessor is ignored) unless VisualDiagnostics is enabled and the ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO environment variable is set.

#### ClickOnce

HDPI-aware applications for Windows Forms, Windows Presentation Foundation (WPF), and Visual Studio Tools for Office (VSTO) can all be deployed by using ClickOnce. If the following entry is found in the application manifest, deployment will succeed under .NET Framework 4.7.2:

For Windows Forms application, the previous workaround of setting DPI awareness in the application configuration file rather than the application manifest is no longer necessary for ClickOnce deployment to succeed.

1 Free shipping not available for parts and accessories. Free shipping to qualifying US destinations in the contiguous United States not available for P.O. Boxes, addresses outside the contiguous 48 states, international addresses, Army Post Office (APO), Diplomatic Post Office (DPO) and Fleet Post Office (FPO).

*Parts and accessories shipping cost may vary.

Prices, promotions and availability may vary by store and online. Prices subject to change without notice. Quantities are limited. Check with your local retailers for their final price and availability.

Get the best TV for your life, your style and your space &ndash and create the ultimate home entertainment experience. With a wide range of LG TVs and TV sizes to choose from, including OLED TVs, NanoCell Smart TVs, 4K and 8K TVs in a variety of sizes, finding the perfect television for your home is simple. Discover just a few of the ways our LG TVs can help transform movies and TV shows, sports, documentaries, and more.

&bull OLED TVs: LG OLED TVs feature over 8 million pixels that turn on and off independently to deliver perfect black, over a billion rich colors and infinite contrast for a viewing experience like no other.
&bull NanoCell Smart TVs: By raising the bar on picture quality and delivering 4K movies, sports and games, plus the latest smart technology, they offer a simple way to elevate your favorite entertainment.
&bull QNED MiniLED TVs: By combining NanoCell and miniLED technology, our QNED MiniLED televisions deliver brilliantly bright colors and a higher contrast ratio for deeper blacks. It's the ultimate in LCD TVs.
&bull 4K TVs: Featuring HDR for a cinematic experience, our 4K TVs deliver rich, vivid pictures &ndash so you can see your favorite sports, movies and more as they were intended.
&bull 8K TVs:, 8K televisions deliver a resolution that's twice that of even the most cutting-edge 4K television (7680 x 4320) &ndash for color and clarity like never before.

In addition to incredible, lifelike images, brilliant colors, contrast and clarity, no matter what type of TV you choose, you'll gain access to a wide range of available features, like LG ThinQ AI with the Google Assistant * and Alexa built-in ** , plus webOS, Dolby Vision IQ and Dolby Atmos &ndash for an even more cinematic experience at home. And because you'll find a variety of TV sizes available, it's easy to choose the perfect TV for your space. Explore our newest collection of OLED TVs, QNED MiniLED TVs, NanoCell TVs, 4K TVs and 8K TVs &ndash and experience television in a whole new way.

## Acute Inpatient PPS

Section 1886(d) of the Social Security Act (the Act) sets forth a system of payment for the operating costs of acute care hospital inpatient stays under Medicare Part A (Hospital Insurance) based on prospectively set rates. This payment system is referred to as the inpatient prospective payment system (IPPS). Under the IPPS, each case is categorized into a diagnosis-related group (DRG). Each DRG has a payment weight assigned to it, based on the average resources used to treat Medicare patients in that DRG.

The base payment rate is divided into a labor-related and nonlabor share. The labor-related share is adjusted by the wage index applicable to the area where the hospital is located, and if the hospital is located in Alaska or Hawaii, the nonlabor share is adjusted by a cost of living adjustment factor. This base payment rate is multiplied by the DRG relative weight.

If the hospital treats a high-percentage of low-income patients, it receives a percentage add-on payment applied to the DRG-adjusted base payment rate. This add-on, known as the disproportionate share hospital (DSH) adjustment, provides for a percentage increase in Medicare payment for hospitals that qualify under either of two statutory formulas designed to identify hospitals that serve a disproportionate share of low-income patients. For qualifying hospitals, the amount of this adjustment may vary based on the outcome of the statutory calculation.

Also, if the hospital is an approved teaching hospital it receives a percentage add-on payment for each case paid through IPPS. This add-on known as the indirect medical education (IME) adjustment, varies depending on the ratio of residents-to-beds under the IPPS for operating costs, and according to the ratio of residents-to-average daily census under the IPPS for capital costs.

Finally, for particular cases that are unusually costly, known as outlier cases, the IPPS payment is increased. This additional payment is designed to protect the hospital from large financial losses due to unusually expensive cases. Any outlier payment due is added to the DRG-adjusted base payment rate, plus any DSH or IME adjustments.

## 4.5: Index Sets

The mysqlcheck client performs table maintenance: It checks, repairs, optimizes, or analyzes tables.

Each table is locked and therefore unavailable to other sessions while it is being processed, although for check operations, the table is locked with a READ lock only (see Section 13.3.6, “LOCK TABLES and UNLOCK TABLES Statements”, for more information about READ and WRITE locks). Table maintenance operations can be time-consuming, particularly for large tables. If you use the --databases or --all-databases option to process all tables in one or more databases, an invocation of mysqlcheck might take a long time. (This is also true for the MySQL upgrade procedure if it determines that table checking is needed because it processes tables the same way.)

mysqlcheck must be used when the mysqld server is running, which means that you do not have to stop the server to perform table maintenance.

mysqlcheck uses the SQL statements CHECK TABLE , REPAIR TABLE , ANALYZE TABLE , and OPTIMIZE TABLE in a convenient way for the user. It determines which statements to use for the operation you want to perform, and then sends the statements to the server to be executed. For details about which storage engines each statement works with, see the descriptions for those statements in Section 13.7.3, “Table Maintenance Statements”.

All storage engines do not necessarily support all four maintenance operations. In such cases, an error message is displayed. For example, if test.t is an MEMORY table, an attempt to check it produces this result:

If mysqlcheck is unable to repair a table, see Section 2.11.13, “Rebuilding or Repairing Tables or Indexes” for manual table repair strategies. This is the case, for example, for InnoDB tables, which can be checked with CHECK TABLE , but not repaired with REPAIR TABLE .

It is best to make a backup of a table before performing a table repair operation under some circumstances the operation might cause data loss. Possible causes include but are not limited to file system errors.

There are three general ways to invoke mysqlcheck :

If you do not name any tables following db_name or if you use the --databases or --all-databases option, entire databases are checked.

mysqlcheck has a special feature compared to other client programs. The default behavior of checking tables ( --check ) can be changed by renaming the binary. If you want to have a tool that repairs tables by default, you should just make a copy of mysqlcheck named mysqlrepair , or make a symbolic link to mysqlcheck named mysqlrepair . If you invoke mysqlrepair , it repairs tables.

The names shown in the following table can be used to change mysqlcheck default behavior.

Command Meaning
mysqlrepair The default option is --repair
mysqlanalyze The default option is --analyze
mysqloptimize The default option is --optimize

mysqlcheck supports the following options, which can be specified on the command line or in the [mysqlcheck] and [client] groups of an option file. For information about option files used by MySQL programs, see Section 4.2.2.2, “Using Option Files”.

Table 4.13 mysqlcheck Options

Option Name Description Introduced Deprecated
--all-databases Check all tables in all databases
--all-in-1 Execute a single statement for each database that names all the tables from that database
--analyze Analyze the tables
--auto-repair If a checked table is corrupted, automatically fix it
--bind-address Use specified network interface to connect to MySQL Server
--character-sets-dir Directory where character sets are installed
--check Check the tables for errors
--check-only-changed Check only tables that have changed since the last check
--compress Compress all information sent between client and server 8.0.18
--compression-algorithms Permitted compression algorithms for connections to server 8.0.18
--databases Interpret all arguments as database names
--debug Write debugging log
--debug-check Print debugging information when program exits
--debug-info Print debugging information, memory, and CPU statistics when program exits
--default-auth Authentication plugin to use
--default-character-set Specify default character set
--defaults-file Read only named option file
--defaults-group-suffix Option group suffix value
--enable-cleartext-plugin Enable cleartext authentication plugin
--extended Check and repair tables
--fast Check only tables that have not been closed properly
--force Continue even if an SQL error occurs
--get-server-public-key Request RSA public key from server
--help Display help message and exit
--host Host on which MySQL server is located
--medium-check Do a check that is faster than an --extended operation
--optimize Optimize the tables
--pipe Connect to server using named pipe (Windows only)
--plugin-dir Directory where plugins are installed
--port TCP/IP port number for connection
--print-defaults Print default options
--protocol Transport protocol to use
--quick The fastest method of checking
--repair Perform a repair that can fix almost anything except unique keys that are not unique
--server-public-key-path Path name to file containing RSA public key
--shared-memory-base-name Shared-memory name for shared-memory connections (Windows only)
--silent Silent mode
--skip-database Omit this database from performed operations
--socket Unix socket file or Windows named pipe to use
--ssl-ca File that contains list of trusted SSL Certificate Authorities
--ssl-capath Directory that contains trusted SSL Certificate Authority certificate files
--ssl-cert File that contains X.509 certificate
--ssl-cipher Permissible ciphers for connection encryption
--ssl-crl File that contains certificate revocation lists
--ssl-crlpath Directory that contains certificate revocation-list files
--ssl-fips-mode Whether to enable FIPS mode on client side
--ssl-key File that contains X.509 key
--ssl-mode Desired security state of connection to server
--tables Overrides the --databases or -B option
--tls-ciphersuites Permissible TLSv1.3 ciphersuites for encrypted connections 8.0.16
--tls-version Permissible TLS protocols for encrypted connections
--use-frm For repair operations on MyISAM tables
--user MySQL user name to use when connecting to server
--verbose Verbose mode
--version Display version information and exit
--write-binlog Log ANALYZE, OPTIMIZE, REPAIR statements to binary log. --skip-write-binlog adds NO_WRITE_TO_BINLOG to these statements
--zstd-compression-level Compression level for connections to server that use zstd compression 8.0.18

Display a help message and exit.

Check all tables in all databases. This is the same as using the --databases option and naming all the databases on the command line, except that the INFORMATION_SCHEMA and performance_schema databases are not checked. They can be checked by explicitly naming them with the --databases option.

Instead of issuing a statement for each table, execute a single statement for each database that names all the tables from that database to be processed.

If a checked table is corrupted, automatically fix it. Any necessary repairs are done after all tables have been checked.

On a computer having multiple network interfaces, use this option to select which interface to use for connecting to the MySQL server.

The directory where character sets are installed. See Section 10.15, “Character Set Configuration”.

Check the tables for errors. This is the default operation.

Check only tables that have changed since the last check or that have not been closed properly.

Invoke CHECK TABLE with the FOR UPGRADE option to check tables for incompatibilities with the current version of the server.

Compress all information sent between the client and the server if possible. See Section 4.2.8, “Connection Compression Control”.

As of MySQL 8.0.18, this option is deprecated. Expect it to be removed in a future version of MySQL. See Configuring Legacy Connection Compression.

The permitted compression algorithms for connections to the server. The available algorithms are the same as for the protocol_compression_algorithms system variable. The default value is uncompressed .

This option was added in MySQL 8.0.18.

Process all tables in the named databases. Normally, mysqlcheck treats the first name argument on the command line as a database name and any following names as table names. With this option, it treats all name arguments as database names.

Write a debugging log. A typical debug_options string is d:t:o, file_name . The default is d:t:o .

This option is available only if MySQL was built using WITH_DEBUG . MySQL release binaries provided by Oracle are not built using this option.

Print some debugging information when the program exits.

This option is available only if MySQL was built using WITH_DEBUG . MySQL release binaries provided by Oracle are not built using this option.

Print debugging information and memory and CPU usage statistics when the program exits.

This option is available only if MySQL was built using WITH_DEBUG . MySQL release binaries provided by Oracle are not built using this option.

Read this option file after the global option file but (on Unix) before the user option file. If the file does not exist or is otherwise inaccessible, an error occurs. If file_name is not an absolute path name, it is interpreted relative to the current directory.

Use only the given option file. If the file does not exist or is otherwise inaccessible, an error occurs. If file_name is not an absolute path name, it is interpreted relative to the current directory.

Read not only the usual option groups, but also groups with the usual names and a suffix of str . For example, mysqlcheck normally reads the [client] and [mysqlcheck] groups. If this option is given as --defaults-group-suffix=_other , mysqlcheck also reads the [client_other] and [mysqlcheck_other] groups.

If you are using this option to check tables, it ensures that they are 100% consistent but takes a long time.

If you are using this option to repair tables, it runs an extended repair that may not only take a long time to execute, but may produce a lot of garbage rows also!

A hint about which client-side authentication plugin to use. See Section 6.2.17, “Pluggable Authentication”.

Enable the mysql_clear_password cleartext authentication plugin. (See Section 6.4.1.4, “Client-Side Cleartext Pluggable Authentication”.)

Check only tables that have not been closed properly.

Continue even if an SQL error occurs.

Request from the server the public key required for RSA key pair-based password exchange. This option applies to clients that authenticate with the caching_sha2_password authentication plugin. For that plugin, the server does not send the public key unless requested. This option is ignored for accounts that do not authenticate with that plugin. It is also ignored if RSA-based password exchange is not used, as is the case when the client connects to the server using a secure connection.

If --server-public-key-path= file_name is given and specifies a valid public key file, it takes precedence over --get-server-public-key .

For information about the caching_sha2_password plugin, see Section 6.4.1.2, “Caching SHA-2 Pluggable Authentication”.

Connect to the MySQL server on the given host.

Read options from the named login path in the .mylogin.cnf login path file. A “ login path ” is an option group containing options that specify which MySQL server to connect to and which account to authenticate as. To create or modify a login path file, use the mysql_config_editor utility. See Section 4.6.7, “mysql_config_editor — MySQL Configuration Utility”.

Do a check that is faster than an --extended operation. This finds only 99.99% of all errors, which should be good enough in most cases.

Do not read any option files. If program startup fails due to reading unknown options from an option file, --no-defaults can be used to prevent them from being read.

The exception is that the .mylogin.cnf file is read in all cases, if it exists. This permits passwords to be specified in a safer way than on the command line even when --no-defaults is used. To create .mylogin.cnf , use the mysql_config_editor utility. See Section 4.6.7, “mysql_config_editor — MySQL Configuration Utility”.

The password of the MySQL account used for connecting to the server. The password value is optional. If not given, mysqlcheck prompts for one. If given, there must be no space between --password= or -p and the password following it. If no password option is specified, the default is to send no password.

Specifying a password on the command line should be considered insecure. To avoid giving the password on the command line, use an option file. See Section 6.1.2.1, “End-User Guidelines for Password Security”.

To explicitly specify that there is no password and that mysqlcheck should not prompt for one, use the --skip-password option.

On Windows, connect to the server using a named pipe. This option applies only if the server was started with the named_pipe system variable enabled to support named-pipe connections. In addition, the user making the connection must be a member of the Windows group specified by the named_pipe_full_access_group system variable.

The directory in which to look for plugins. Specify this option if the --default-auth option is used to specify an authentication plugin but mysqlcheck does not find it. See Section 6.2.17, “Pluggable Authentication”.

For TCP/IP connections, the port number to use.

Print the program name and all options that it gets from option files.

The transport protocol to use for connecting to the server. It is useful when the other connection parameters normally result in use of a protocol other than the one you want. For details on the permissible values, see Section 4.2.7, “Connection Transport Protocols”.

If you are using this option to check tables, it prevents the check from scanning the rows to check for incorrect links. This is the fastest check method.

If you are using this option to repair tables, it tries to repair only the index tree. This is the fastest repair method.

Perform a repair that can fix almost anything except unique keys that are not unique.

The path name to a file in PEM format containing a client-side copy of the public key required by the server for RSA key pair-based password exchange. This option applies to clients that authenticate with the sha256_password or caching_sha2_password authentication plugin. This option is ignored for accounts that do not authenticate with one of those plugins. It is also ignored if RSA-based password exchange is not used, as is the case when the client connects to the server using a secure connection.

If --server-public-key-path= file_name is given and specifies a valid public key file, it takes precedence over --get-server-public-key .

For sha256_password , this option applies only if MySQL was built using OpenSSL.

On Windows, the shared-memory name to use for connections made using shared memory to a local server. The default value is MYSQL . The shared-memory name is case-sensitive.

This option applies only if the server was started with the shared_memory system variable enabled to support shared-memory connections.

Silent mode. Print only error messages.

Do not include the named database (case-sensitive) in the operations performed by mysqlcheck .

For connections to localhost , the Unix socket file to use, or, on Windows, the name of the named pipe to use.

On Windows, this option applies only if the server was started with the named_pipe system variable enabled to support named-pipe connections. In addition, the user making the connection must be a member of the Windows group specified by the named_pipe_full_access_group system variable.

Options that begin with --ssl specify whether to connect to the server using encryption and indicate where to find SSL keys and certificates. See Command Options for Encrypted Connections.

Controls whether to enable FIPS mode on the client side. The --ssl-fips-mode option differs from other --ssl- xxx options in that it is not used to establish encrypted connections, but rather to affect which cryptographic operations to permit. See Section 6.8, “FIPS Support”.

These --ssl-fips-mode values are permitted:

STRICT : Enable “ strict ” FIPS mode.

If the OpenSSL FIPS Object Module is not available, the only permitted value for --ssl-fips-mode is OFF . In this case, setting --ssl-fips-mode to ON or STRICT causes the client to produce a warning at startup and to operate in non-FIPS mode.

Override the --databases or -B option. All name arguments following the option are regarded as table names.

The permissible ciphersuites for encrypted connections that use TLSv1.3. The value is a list of one or more colon-separated ciphersuite names. The ciphersuites that can be named for this option depend on the SSL library used to compile MySQL. For details, see Section 6.3.2, “Encrypted Connection TLS Protocols and Ciphers”.

This option was added in MySQL 8.0.16.

The permissible TLS protocols for encrypted connections. The value is a list of one or more comma-separated protocol names. The protocols that can be named for this option depend on the SSL library used to compile MySQL. For details, see Section 6.3.2, “Encrypted Connection TLS Protocols and Ciphers”.

For repair operations on MyISAM tables, get the table structure from the data dictionary so that the table can be repaired even if the .MYI header is corrupted.

The user name of the MySQL account to use for connecting to the server.

Verbose mode. Print information about the various stages of program operation.

Display version information and exit.

This option is enabled by default, so that ANALYZE TABLE , OPTIMIZE TABLE , and REPAIR TABLE statements generated by mysqlcheck are written to the binary log. Use --skip-write-binlog to cause NO_WRITE_TO_BINLOG to be added to the statements so that they are not logged. Use the --skip-write-binlog when these statements should not be sent to replicas or run when using the binary logs for recovery from backup.

The compression level to use for connections to the server that use the zstd compression algorithm. The permitted levels are from 1 to 22, with larger values indicating increasing levels of compression. The default zstd compression level is 3. The compression level setting has no effect on connections that do not use zstd compression.

## Annual price changes and CPI

The CPI rate is announced in January each year and we will adjust a customer's bill by this amount plus an additional 3.9% from 31 March of the same year. For example, the CPI rate announced in January 2021 was 0.6%, so customers’ monthly plan prices from 31 March 2021 will increase by 4.5%.

This reflects the increase in the costs to run and invest in the network and service that we provide.

This will impact the following services:

• Landline (with some exceptions)
• TV
• Sport
• Mobile
• Extra charges, like out out-of-allowance calling rates and your optional add-ons.

Have a look at the tariff guide for each of your services for the full list of charges.

The Consumer Price Index (CPI) is a measure of whether the cost of goods and services is going up or down based on average price changes from across several industries. CPI measures inflation by taking a basket of goods (e.g. food, clothes, petrol), looking at what they cost last year, looking at what they cost now, and finding the difference.

However, CPI leaves the cost of your home out of the basket (e.g. rises in mortgage payments, rent and council tax) so they are not reflected in it. A new index is published every month. There’s lots more information on the Office for National Statistics website, search ‘CPI ONS’.

If you have signed up to a new contract on or after 1 September 2020, your broadband, mobile and landline, TV and Sport monthly plan prices will go up in line with any change in the rate of CPI plus 3.9%. Lots of our extra charges, like out-of-allowance calling rates and your optional add-ons, will also go up in line with CPI plus 3.9% too. Have a look in the tariff guide for details.

We’ll keep you in the know on everything you love about Ross.

Follow Ross on Instagram to get the latest on in-store events, new merchandise and more!

Follow Ross on Facebook to get the latest on in-store events, new merchandise and more!

©2021 Ross Stores, Inc. All rights reserved. All merchandise is representative of the merchandise carried in our stores. Styles, colors, and items will vary by store.
If you have trouble accessing this website, please call 800-335-1115.

## PCMDI is Transitioning

PCMDI is transitioning to this new website. If you can't find something please visit the old site below. Please report any missing content.

PCMDI was established in 1989 at the Lawrence Livermore National Laboratory (LLNL), located in the San Francisco Bay area, in California. Our staff includes research scientists, computer scientists, and diverse support personnel. We are primarily funded by the Regional and Global Climate Modeling (RGCM) Program and the Atmospheric System Research (ASR) Program of the Climate and Environmental Sciences Division of the U.S. Department of Energy’s Office of Science, Biological and Environmental Research (BER) program.

The PCMDI mission is to develop improved methods and tools for the diagnosis and intercomparison of general circulation models (GCMs) that simulate the global climate. The need for innovative analysis of GCM climate simulations is apparent, as increasingly more complex models are developed, while the disagreements among these simulations and relative to climate observations remain significant and poorly understood. The nature and causes of these disagreements must be accounted for in a systematic fashion in order to confidently use GCMs for simulation of putative global climate change.

PCMDI’s mission demands that we work on both scientific projects and infrastructural tasks. Our current scientific projects focus on supporting model intercomparison, on developing a model parameterization testbed, identification of robust Cloud Feedbacks in observations and models and on devising robust statistical methods for climate-change detection/attribution. Examples of ongoing infrastructural tasks include the development of software for data management, visualization, and computation the assembly/organization of observational data sets for model validation and the consistent documentation of climate model features. Details of all this work are described in numerous publications, as well as on this website.

We now also are applying our collective expertise to support modeling studies initiated by the World Climate Research Programme (WCRP). Notably, we are currently providing leadership in managing the Coupled Model Intercomparison Project, Phase 5 (CMIP5). Among PCMDI’s role in CMIP5 is responsibility for leading the Earth System Grid Federation (ESGF) which stores and distributes terrascale data sets from multiple coupled ocean-atmosphere global climate model simulations. Extensive analysis of these simulations by members of the international climate community will provide an important scientific basis for the IPCC’s Fifth Assessment Report on Climate Change, which is scheduled for publication in 2013.