<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="m10757">
  
  <name>Cauchy-Schwarz Inequality</name>

  <metadata>
  <md:version>2.4</md:version>
  <md:created>2002/07/25</md:created>
  <md:revised>2004/02/07 23:22:57 US/Central</md:revised>
  <md:authorlist>
      <md:author id="mjhaag">
      <md:firstname>Michael</md:firstname>
      
      <md:surname>Haag</md:surname>
      <md:email>mjhaag@rice.edu</md:email>
    </md:author>
      <md:author id="jrom">
      <md:firstname>Justin</md:firstname>
      
      <md:surname>Romberg</md:surname>
      <md:email>jrom@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="jrom">
      <md:firstname>Justin</md:firstname>
      
      <md:surname>Romberg</md:surname>
      <md:email>jrom@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="richb">
      <md:firstname>Richard</md:firstname>
      <md:othername>G.</md:othername>
      <md:surname>Baraniuk</md:surname>
      <md:email>richb@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="mjhaag">
      <md:firstname>Michael</md:firstname>
      
      <md:surname>Haag</md:surname>
      <md:email>mjhaag@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="mariyah">
      <md:firstname>Mariyah</md:firstname>
      
      <md:surname>Poonawala</md:surname>
      <md:email>mariyah@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="prash">
      <md:firstname>Prashant</md:firstname>
      
      <md:surname>Singh</md:surname>
      <md:email>prash@ece.rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>cauch-schwarz</md:keyword>
    <md:keyword>cauchy</md:keyword>
    <md:keyword>cauchy-schwarz inequality</md:keyword>
    <md:keyword>csi</md:keyword>
    <md:keyword>cuachy</md:keyword>
    <md:keyword>frequency shift keying</md:keyword>
    <md:keyword>fsk</md:keyword>
    <md:keyword>hilbert</md:keyword>
    <md:keyword>inner product</md:keyword>
    <md:keyword>inner products</md:keyword>
    <md:keyword>matched filter</md:keyword>
    <md:keyword>matched filter detector</md:keyword>
    <md:keyword>matched filters</md:keyword>
    <md:keyword>schwarz</md:keyword>
  </md:keywordlist>

  <md:abstract>This module defines the Cauchy-Schwarz Inequality and discusses some of its practical usefulness, especially in the Matched filter detector.  Also, we will prove the CSI for real vector spaces.
</md:abstract>
</metadata>
  
  
  <content>
    <section id="intro">
      <name>Introduction</name>
      <para id="p1_intro">
	Recall in
	<m:math display="inline">
	  <m:apply>
	    <m:power/>
	    <m:reals/>
	    <m:cn>2</m:cn>
	  </m:apply>
	</m:math>, 

	<m:math display="inline">
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:scalarproduct/>
	      <m:ci type="vector">x</m:ci>
	      <m:ci type="vector">y</m:ci>
	    </m:apply>
	    <m:apply>
	      <m:times/>
	      <m:apply>
		<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
		<m:ci type="vector">x</m:ci>
	      </m:apply>
	      <m:apply>
		<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
		<m:ci type="vector">y</m:ci>
	      </m:apply>
	      <m:apply>
		<m:cos/>
		<m:ci>θ</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>

	<equation id="eq1">
	  <m:math>
	    <m:apply>
	      <m:leq/>
	      <m:apply>
		<m:abs/>
		<m:apply>
		  <m:scalarproduct/>
		  <m:ci type="vector">x</m:ci>
		  <m:ci type="vector">y</m:ci>
		</m:apply>
	      </m:apply>
	      <m:apply>
		<m:times/>
		<m:apply>
		  <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
		  <m:ci type="vector">x</m:ci>
		</m:apply>
		<m:apply>
		  <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
		  <m:ci type="vector">y</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>

	The same relation holds for <cnxn document="m10755" strength="8"> inner product spaces</cnxn> in general...
      </para>
        
      <section id="csi">
	<name>Cauchy-Schwarz Inequality</name>
	<para id="p1_csi">
	  
	  <definition id="csi_def">
	    <term>Cauchy-Schwarz Inequality</term>
	    <meaning>
	      For <m:math><m:ci type="vector">x</m:ci></m:math>, 
	      <m:math><m:ci type="vector">y</m:ci></m:math> in an inner
	      product space

	      <m:math display="block">
		<m:apply>
		  <m:leq/>
		  <m:apply>
		    <m:abs/>
		    <m:apply>
		      <m:scalarproduct/>
		      <m:ci type="vector">x</m:ci>
		      <m:ci type="vector">y</m:ci>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:times/>
		    <m:apply>
		      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
		      <m:ci type="vector">x</m:ci>
		    </m:apply>
		    <m:apply>
		      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
		      <m:ci type="vector">y</m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:math>

	      with equality holding <emphasis>if and only
	      if</emphasis> <m:math><m:ci type="vector">x</m:ci></m:math> and <m:math><m:ci type="vector">y</m:ci></m:math> are <cnxn document="m10734" target="lin_ind" strength="7">linearly
	      dependent</cnxn>, <foreign>i.e.</foreign>
	      <m:math display="inline">
		<m:apply>
		  <m:eq/>
		  <m:ci type="vector">x</m:ci>
		  <m:apply>
		    <m:times/>
		    <m:ci>α</m:ci>
		    <m:ci type="vector">y</m:ci>
		  </m:apply>
		</m:apply>
	      </m:math> for some scalar
	      <m:math><m:ci>α</m:ci></m:math>. 
	    </meaning>
	  </definition>	
	</para>
      </section>
    </section>

    <section id="sec2">
      <name>Matched Filter Detector</name>
      <para id="p1_sec2">
	Also referred to as Cauchy-Schwarz's "Killer App."  
      </para>
      
      <section id="sub1_s2">
	<name>Concept behind Matched Filter</name>
	<para id="p1_s1s2">
	  
	  If we are given two vectors, <m:math><m:ci type="vector">f
	    </m:ci> </m:math> and <m:math><m:ci type="vector">g</m:ci></m:math>, then the Cauchy-Schwarz
	    Inequality (CSI) is <emphasis>maximized</emphasis> when
	  <m:math display="inline">
	    <m:apply>
	      <m:eq/>
	      <m:ci>f</m:ci>
	      <m:apply>
		<m:times/>
		<m:ci>α</m:ci>
		<m:ci>g</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:math>.  This tells us:
	  
	  <list id="list1">
	    <item>
	      <m:math><m:ci type="vector">f</m:ci></m:math> is in the
	      same "direction" as <m:math><m:ci type="vector">g</m:ci></m:math>
	    </item>
	    <item>
	      if <m:math><m:ci type="vector">f</m:ci></m:math> and
	      <m:math><m:ci type="vector">g</m:ci></m:math> are
	      functions,
	      <m:math display="inline">
		<m:apply>
		  <m:eq/>
		  <m:ci>f</m:ci>
		  <m:apply>
		    <m:times/>
		    <m:ci>α</m:ci>
		    <m:ci>g</m:ci>
		  </m:apply>
		</m:apply>
	      </m:math> means <m:math><m:ci type="vector">f</m:ci></m:math> and <m:math><m:ci type="vector">g</m:ci></m:math> have the same shape.
	    </item>
	  </list>

	  For example, say we are in a situation where we have a set of
	  signals, defined as 
	  <m:math display="inline">
	    <m:apply>
	      <m:set>
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>g</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>g</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
		<m:ci>…</m:ci>
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>g</m:mi>
		      <m:mi>k</m:mi>
		    </m:msub>
		  </m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
	      </m:set>
	    </m:apply>
	  </m:math>,
	  and we want to be able to tell which, if any, of these signals
	  resemble another given signal 
	  <m:math display="inline">
	    <m:apply>
	      <m:ci type="fn">f</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math>.

	  <note type="strategy">
	    In order to find the signal(s) that resembles
	    <m:math display="inline">
	      <m:apply>
		<m:ci type="fn">f</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	    </m:math> we will take the inner products.  If 
	    <m:math display="inline">
	      <m:apply>
		<m:ci type="fn">
		  <m:msub>
		    <m:mi>g</m:mi>
		    <m:mi>i</m:mi>
		  </m:msub>
		</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	    </m:math> resembles 
	    <m:math display="inline">
	      <m:apply>
		<m:ci type="fn">f</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	    </m:math>, then the absolute value of the inner product,
	    
	    <m:math display="inline">
	      <m:apply>
		<m:abs/>
		<m:apply>
		  <m:scalarproduct/>
		  <m:apply>
		    <m:ci type="fn">f</m:ci>
		    <m:ci>t</m:ci>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">
		      <m:msub>
			<m:mi>g</m:mi>
			<m:mi>i</m:mi>
		      </m:msub>
		    </m:ci>
		    <m:ci>t</m:ci>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>, will be <emphasis>large</emphasis>.
	  </note>	  
	  
	  This idea of being able to measure and rank the "likeness"
	  of two signals leads us to the <term>Matched Filter
	  Detector</term>. 
	</para>
      </section>
      
      <section id="sub2_s2">
	<name>Comparing Signals</name>
	<para id="p1_s2d2">
	  The simplest use of the Matched Filter would be to take a
	  set of "candidate" signals, say our set of 
	  <m:math display="inline">
	    <m:apply>
	      <m:set>
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>g</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>g</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub>
		  </m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
		<m:ci>…</m:ci>
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>g</m:mi>
		      <m:mi>k</m:mi>
		    </m:msub>
		  </m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
	      </m:set>
	    </m:apply>
	  </m:math>, and try to match it to a "template" signal,
	  <m:math display="inline">
	    <m:apply>
	      <m:ci type="fn">f</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math>.  For example say we are given the below template
	  (<cnxn target="fig1"/>) and candidate signals (<cnxn target="fig2"/>):
	</para>

	<figure id="fig1">
	  <name>Template Signal</name>
	  <media type="image/png" src="csi_f1.png"/>
	  <caption>
	    Our signal we wish to find match of.
	  </caption>
	</figure>
	
	<figure orient="horizontal" id="fig2">
	  <name>Candidate Signals</name>
	  <subfigure id="subf1">
	    <media type="image/png" src="csi_f2.png"/>
	  </subfigure>
	  <subfigure id="subf2">
	    <media type="image/png" src="csi_f3.png"/>
	  </subfigure>
	  <caption>
	    Clearly by looking at these we can see which signal will
	    provide the better match to our template signal.
	  </caption>
	</figure>
	
	<para id="p2_s1s2">
	  Now if our only question was which function was a closer
	  match to 
	  <m:math display="inline">
	    <m:apply>
	      <m:ci type="fn">f</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math>
	  then we can easily come up with the answer based on
	  inspection - 
	   <m:math display="inline">
	    <m:apply>
	      <m:ci type="fn">
		<m:msub>
		  <m:mi>g</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math>.  However, this will not always be the case.
	  Also, we may want to develop a method, or algorithm, that
	  could automate these comparisons.  Or perhaps we wish to have
	  a quantitative value expressing just how similar the signals
	  are.  To address these issues, we will lay out a more formal
	  approach to comparing the signals, which will, as
	  mentioned above, be based on the inner product.
	</para>

	<para id="p3_s1s2">
	  In order to see which of our candidate signals, 
	  <m:math display="inline">
	    <m:apply>
	      <m:ci type="fn">
		<m:msub>
		  <m:mi>g</m:mi>
		  <m:mn>1</m:mn>
		</m:msub>
	      </m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math> or 
	  <m:math display="inline">
	    <m:apply>
	      <m:ci type="fn">
		<m:msub>
		  <m:mi>g</m:mi>
		  <m:mn>2</m:mn>
		</m:msub>
	      </m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math>, 
	  best resembles 
	  <m:math display="inline">
	    <m:apply>
	      <m:ci type="fn">f</m:ci>
	      <m:ci>t</m:ci>
	    </m:apply>
	  </m:math> we need to perform the following steps:

	  <list id="mfilt_steps">
	    <item>
	      Normalize the 
	      <m:math display="inline">
		<m:apply>
		  <m:ci type="fn">
		    <m:msub>
		      <m:mi>g</m:mi>
		      <m:mi>i</m:mi>
		    </m:msub>
		  </m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
	      </m:math>
	    </item>
	    <item>
	      Take the inner product with 
	      <m:math display="inline">
		<m:apply>
		  <m:ci type="fn">f</m:ci>
		  <m:ci>t</m:ci>
		</m:apply>
	      </m:math>
	    </item>
	    <item>
	      Find the biggest!
	    </item>
	  </list>

	  Or, putting it mathematically:

	  <equation id="eq2">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:ci>Best candidate</m:ci>
		<m:apply>
		  <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#argmax"/>
		  <m:domainofapplication>
		    <m:ci>i</m:ci>
		  </m:domainofapplication>
		  <m:apply>
		    <m:divide/>
		    <m:apply>
		      <m:abs/>
		      <m:apply>
			<m:scalarproduct/>
			<m:ci type="vector">f</m:ci>
			<m:ci type="vector">
			  <m:msub>
			    <m:mi>g</m:mi>
			    <m:mi>i</m:mi>
			  </m:msub>
			</m:ci>
		      </m:apply>
		    </m:apply>
		    <m:apply>
		      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
		      <m:ci type="vector">
			<m:msub>
			  <m:mi>g</m:mi>
			  <m:mi>i</m:mi>
			</m:msub>
		      </m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </equation>
	</para>
      </section>
      
      
      <section id="sub3_s2">
	<name>Finding a Pattern</name>
	<para id="p1_s2s3">
	  Extending these thoughts of using the Matched Filter to find
	  similarities among signals, we can use the same idea to
	  search for a pattern in a long signal.  The idea is simply
	  to repeatedly perform the same calculation as we did
	  previously; however, now instead of calculating on different
	  signals we will simply perform the inner product with
	  different shifted versions of our "pattern" signal.  For
	  example, say we have the following two signals - a pattern
	  signal (<cnxn target="fig3"/>) and long signal (<cnxn target="fig4"/>).
	</para>

	<figure id="fig3">
	  <name>Pattern Signal</name>
	  <media type="image/png" src="csi_pattern.png"/>
	  <caption>
	    The pattern we are looking for in a our long signal having
	    a length <m:math><m:ci>T</m:ci></m:math>.
	  </caption>
	</figure>
	
	<figure id="fig4">
	  <name>Long Signal</name>
	  <media type="image/png" src="csi_long.png"/>
	  <caption>
	    Here is the long signal that contains a piece that
	    resembles our pattern signal.
	  </caption>
	</figure>

	<para id="p2_s2s3">
	  Here we will look at two shifts of our pattern signal,
	  shifting the signal by 
	  <m:math>
	    <m:ci><m:msub>
	      <m:mi>s</m:mi>
	      <m:mn>1</m:mn>
	    </m:msub></m:ci>
	  </m:math> and 
	  <m:math>
	    <m:ci><m:msub>
	      <m:mi>s</m:mi>
	      <m:mn>2</m:mn>
	    </m:msub></m:ci>
	  </m:math>.  These two possibilities yield the following
	  calculations and results:

	  <list id="list_shft">
	    <item>
	      Shift of 
	      <m:math>
		<m:ci><m:msub>
		  <m:mi>s</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	      </m:math>:
	      
	      <equation id="eq3">
		<m:math>
		 <m:apply>
		    <m:eq/>
		    <m:apply>
		      <m:divide/>
		      <m:apply>
			<m:int/>
			<m:bvar>
			  <m:ci>t</m:ci>
			</m:bvar>
			<m:uplimit>
			  <m:apply>
			    <m:plus/>
			    <m:ci><m:msub>
			      <m:mi>s</m:mi>
			      <m:mn>1</m:mn>
			    </m:msub></m:ci>
			    <m:ci>T</m:ci>
			  </m:apply>
			</m:uplimit>
			<m:lowlimit>
			  <m:ci><m:msub>
			    <m:mi>s</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub></m:ci>
			</m:lowlimit>
			<m:apply>
			  <m:times/>
			  <m:apply>
			    <m:ci type="fn">g</m:ci>
			    <m:ci>t</m:ci>
			  </m:apply>
			  <m:apply>
			    <m:ci type="fn">f</m:ci>
			    <m:apply>
			      <m:minus/>
			      <m:ci>t</m:ci>
			      <m:ci><m:msub>
				<m:mi>s</m:mi>
				<m:mn>1</m:mn>
			      </m:msub></m:ci>
			    </m:apply>
			  </m:apply>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:root/>
			<m:apply>
			  <m:int/>
			  <m:bvar>
			    <m:ci>t</m:ci>
			  </m:bvar>
			  <m:uplimit>
			    <m:apply>
			      <m:plus/>
			      <m:ci><m:msub>
				<m:mi>s</m:mi>
				<m:mn>1</m:mn>
			      </m:msub></m:ci>
			      <m:ci>T</m:ci>
			    </m:apply>
			  </m:uplimit>
			  <m:lowlimit>
			    <m:ci><m:msub>
			      <m:mi>s</m:mi>
			      <m:mn>1</m:mn>
			    </m:msub></m:ci>
			  </m:lowlimit>
			  <m:apply>
			    <m:power/>
			    <m:apply>
			      <m:abs/>
			      <m:apply>
				<m:ci type="fn">g</m:ci>
				<m:ci>t</m:ci>
			      </m:apply>
			    </m:apply>
			    <m:cn>2</m:cn>
			  </m:apply>
			</m:apply>
		      </m:apply>
		    </m:apply>
		    <m:ci>"large"</m:ci>
		  </m:apply>
		</m:math>
	      </equation>
	    </item>

	    <item>
	        Shift of 
	      <m:math>
		<m:ci><m:msub>
		  <m:mi>s</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci>
	      </m:math>:
	      
	      <equation id="eq4">
		<m:math>
		 <m:apply>
		    <m:eq/>
		    <m:apply>
		      <m:divide/>
		      <m:apply>
			<m:int/>
			<m:bvar>
			  <m:ci>t</m:ci>
			</m:bvar>
			<m:uplimit>
			  <m:apply>
			    <m:plus/>
			    <m:ci><m:msub>
			      <m:mi>s</m:mi>
			      <m:mn>2</m:mn>
			    </m:msub></m:ci>
			    <m:ci>T</m:ci>
			  </m:apply>
			</m:uplimit>
			<m:lowlimit>
			  <m:ci><m:msub>
			    <m:mi>s</m:mi>
			    <m:mn>2</m:mn>
			  </m:msub></m:ci>
			</m:lowlimit>
			<m:apply>
			  <m:times/>
			  <m:apply>
			    <m:ci type="fn">g</m:ci>
			    <m:ci>t</m:ci>
			  </m:apply>
			  <m:apply>
			    <m:ci type="fn">f</m:ci>
			    <m:apply>
			      <m:minus/>
			      <m:ci>t</m:ci>
			      <m:ci><m:msub>
				<m:mi>s</m:mi>
				<m:mn>2</m:mn>
			      </m:msub></m:ci>
			    </m:apply>
			  </m:apply>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:root/>
			<m:apply>
			  <m:int/>
			  <m:bvar>
			    <m:ci>t</m:ci>
			  </m:bvar>
			  <m:uplimit>
			    <m:apply>
			      <m:plus/>
			      <m:ci><m:msub>
				<m:mi>s</m:mi>
				<m:mn>2</m:mn>
			      </m:msub></m:ci>
			      <m:ci>T</m:ci>
			    </m:apply>
			  </m:uplimit>
			  <m:lowlimit>
			    <m:ci><m:msub>
			      <m:mi>s</m:mi>
			      <m:mn>2</m:mn>
			    </m:msub></m:ci>
			  </m:lowlimit>
			  <m:apply>
			    <m:power/>
			    <m:apply>
			      <m:abs/>
			      <m:apply>
				<m:ci type="fn">g</m:ci>
				<m:ci>t</m:ci>
			      </m:apply>
			    </m:apply>
			    <m:cn>2</m:cn>
			  </m:apply>
			</m:apply>
		      </m:apply>
		    </m:apply>
		    <m:ci>"small"</m:ci>
		  </m:apply>
		</m:math>
	      </equation>
	    </item>
	  </list>

	  Therefore, we can define a generalized equation for our
	  matched filter:

	  <equation id="eq5">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:ci type="fn">m</m:ci>
		  <m:ci>s</m:ci>
		</m:apply>
		<m:ci>matched filter</m:ci>
	      </m:apply>
	    </m:math>
	  </equation>

	  <equation id="eq6">
	    <m:math>
	      <m:apply>
		<m:eq/>		
		<m:apply>
		  <m:ci type="fn">m</m:ci>
		  <m:ci>s</m:ci>
		</m:apply>
		<m:apply>
		  <m:divide/>
		  <m:apply>
		    <m:int/>
		    <m:bvar>
		      <m:ci>t</m:ci>
		    </m:bvar>
		    <m:uplimit>
		      <m:apply>
			<m:plus/>
			<m:ci>s</m:ci>
			<m:ci>T</m:ci>
		      </m:apply>
		    </m:uplimit>
		    <m:lowlimit>
		      <m:ci>s</m:ci>
		    </m:lowlimit>
		    <m:apply>
		      <m:times/>
		      <m:apply>
			<m:ci type="fn">g</m:ci>
			<m:ci>t</m:ci>
		      </m:apply>
		      <m:apply>
			<m:ci type="fn">f</m:ci>
			<m:apply>
			  <m:minus/>
			  <m:ci>t</m:ci>
			  <m:ci>s</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:apply>
		      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#evaluateat"/>
		      <m:condition>
			<m:apply>
			  <m:ci type="fn">
			    <m:msup>
			      <m:mi>L</m:mi>
			      <m:mn>2</m:mn>
			    </m:msup>
			  </m:ci>
			  <m:interval>
			    <m:ci>s</m:ci>
			    <m:apply>
			      <m:plus/>
			      <m:ci>s</m:ci>
			      <m:ci>T</m:ci>
			    </m:apply>
			  </m:interval>
			</m:apply>
		      </m:condition>
		      <m:apply>
			<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			<m:apply>
			  <m:ci type="fn">g</m:ci>
			  <m:ci>t</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>
	  </equation>
	  
	  where the numerator in <cnxn target="eq6" strength="8"/> is
	  the convolution of 
	  <m:math display="inline">
	    <m:apply>
	      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#convolve"/>
	      <m:apply>
		<m:ci type="fn">g</m:ci>
		<m:ci>t</m:ci>
	      </m:apply>
	      <m:apply>
		<m:ci type="fn">f</m:ci>
		<m:apply>
		  <m:minus/>
		  <m:ci>t</m:ci>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math>.  Now in order to decide whether or not the result
	  from our matched filter detector is high enough to indicate
	  an acceptable match between the two signals, we define some
	  <term>threshold</term>.  If 

	  <m:math display="block">
	    <m:apply>
	      <m:geq/>
	      <m:apply>
		<m:ci type="fn">m</m:ci>
		<m:ci><m:msub>
		  <m:mi>s</m:mi>
		  <m:mn>0</m:mn>
		</m:msub></m:ci>
	      </m:apply>
	      <m:ci>threshold</m:ci>
	    </m:apply>
	  </m:math>

	  then we have a match at location
	  <m:math display="inline">
	    <m:ci><m:msub>
	      <m:mi>s</m:mi>
	      <m:mn>0</m:mn>
	    </m:msub></m:ci>
	  </m:math>.
	</para>
      </section>
      

      <section id="sub3">
	<name>Practical Examples</name>
	<section id="sub3a">
	  <name>Image Detection</name>

	  <para id="p1_2d">
	    In 2-D, this concept is used to match images together,
	    such as verifying fingerprints for security or to match
	    photos of someone.  For example, this idea could be used
	    for the ever-popular "Where's Waldo?" books!  If we are
	    given the below template (<cnxn target="subfig1"/>) and
	    piece of a "Where's Waldo?" book (<cnxn target="subfig2"/>),
	  </para>
	  
	  <figure orient="horizontal" id="waldo">
	    <subfigure id="subfig1">
	      <media type="image/png" src="waldo_head.png"/>
	    </subfigure>
	    <subfigure id="subfig2">
	      <media type="image/png" src="waldo_pic.png"/>
	    </subfigure>
	    <caption>
	      Example of "Where's Waldo?" picture.  Our Matched Filter
	      Detector can be implemented to find a possible match for
	      Waldo. 
	    </caption>
	  </figure>
	  
	  <para id="p2_2d">
	    then we could easily develop a program to find the closest
	    resemblance to the image of Waldo's head in the larger
	    picture.  We would simply implement our same match filter
	    algorithm: take the inner products at each shift and see
	    how large our resulting answers are.  This idea was
	    implemented on this same picture for a <link src="http://www.owlnet.rice.edu/~elec301/Projects99/waldo/process.html">
	    Signals and Systems Project</link> at Rice University
	    (click the link to learn more).
	  </para>
	</section>

	
	<section id="sub3b">
	  <name>Communications Systems</name>
	  <para id="p1_sub3b">
	    Matched filter detector are also commonly used in <cnxn document="m0002" strength="8">Communications Systems</cnxn>.
	    In fact, they are the <emphasis>optimal</emphasis>
	    detectors in Gaussian noise.  Signals in the real-world
	    are often distorted by the environment around them, so
	    there is a constant struggle to develop ways to be able to
	    receive a distorted signal and then be able to filter it
	    in some way to determine what the original signal was.
	    Matched filters provide one way to compare a received
	    signal with two possible original ("template") signals and
	    determine which one is the closest match to the received
	    signal. 
	  </para>
	  <para id="p1a_sub3b">
	    For example, below we have a simplified example of <cnxn document="m0545" strength="8">Frequency Shift Keying</cnxn>
	    (FSK) where we having the following coding for '1' and
	    '0':
	  </para>

	  <figure id="fig_fsk1">
	    <media type="image/png" src="mfilt_1.png"/>
	    <caption>
	      Frequency Shift Keying for '1' and '0'.
	    </caption>
	  </figure>

	  <para id="p2_sub3b">
	    Based on the above coding, we can create digital signals
	    based on 0's and 1's by putting together the above two
	    "codes" in an infinite number of ways.  For this example
	    we will transmit a basic 3-bit number, 101, which is
	    displayed in <cnxn target="fig_fsk2"/>:
	  </para>

	  <figure id="fig_fsk2">
	    <media type="image/png" src="mfilt_2.png"/>
	    <caption>
	      The bit stream "101" coded with the above FSK.
	    </caption>
	  </figure>

	  <para id="p3_sub3b">
	    Now, the signal picture above represents our original
	    signal that will be transmitted over some communication
	    system, which will inevitably pass through the
	    "communications channel," the part of the system that will
	    distort and alter our signal.  As long as the noise is not
	    too great, our matched filter should keep us from having
	    to worry about these changes to our transmitted signal.
	    Once this signal has been received, we will pass the noisy
	    signal through a simple system, similar to the simplified
	    version shown in <cnxn target="fig_fsk3"/>:
	  </para>
	  
	  <figure id="fig_fsk3">
	    <media type="image/png" src="mfilt_3.png"/>
	    <caption>
	      Block diagram of matched filter detector.
	    </caption>
	  </figure>
	  
	  <para id="p4_sub3b">
	    <cnxn target="fig_fsk3"/> basically shows that our noisy
	    signal will be passed in (we will assume that it passes in
	    one "bit" at a time) and this signal will be split and
	    passed to two different matched filter detectors.  Each
	    one will compare the noisy, received signal to one of the
	    two codes we defined for '1' and '0.'  Then this value
	    will be passed on and whichever value is higher
	    (<foreign>i.e.</foreign> whichever FSK code signal the
	    noisy signal most resembles) will be the value that the
	    receiver takes.  For example, the first bit that will be
	    sent through will be a '1' so the upper level of the block
	    diagram will have a higher value, thus denoting that a '1'
	    was sent by the signal, even though the signal may appear
	    very noisy and distorted.
	  </para>
	</section>
      </section>
    </section>

    <section id="sec3">
      <name>Proof of CSI</name>
      <para id="p1_sec3">
	Here will look at the proof of our Cauchy-Schwarz Inequality
	(CSI) for a <term>real vector space</term>.
	
	<rule type="theorem" id="rule1">
	  <name>CSI for Real Vector Space</name>
	  <statement>
	    <para id="ruleexp1">
	      For 
	      <m:math display="inline">
		<m:apply>
		  <m:in/>
		  <m:ci>f</m:ci>
		  <m:ci>Hilbert Space S</m:ci>
		</m:apply>
	      </m:math> and 
	       <m:math display="inline">
		<m:apply>
		  <m:in/>
		  <m:ci>g</m:ci>
		  <m:ci>Hilbert Space S</m:ci>
		</m:apply>
	      </m:math>, show:

	      <equation id="eq7">
		<m:math>
		  <m:apply>
		    <m:leq/>
		    <m:apply>
		      <m:abs/>
		      <m:apply>
			<m:scalarproduct/>
			<m:ci>f</m:ci>
			<m:ci>g</m:ci>
		      </m:apply>
		    </m:apply>
		    <m:apply>
		      <m:times/>
		      <m:apply>
			<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			<m:ci>f</m:ci>
		      </m:apply>
		      <m:apply>
			<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			<m:ci>g</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </equation>
		
	      with equality if and only if 
	      <m:math display="inline">
		<m:apply>
		  <m:eq/>
		  <m:ci>g</m:ci>
		  <m:apply>
		    <m:times/>
		    <m:ci>α</m:ci>
		    <m:ci>f</m:ci>
		  </m:apply>
		</m:apply>
	      </m:math>.
	    </para>
	  </statement>

	  <proof>
	    <list id="list_proof">
	      <item>
		If    
		<m:math display="inline">
		  <m:apply>
		      <m:eq/>
		      <m:ci>g</m:ci>
		      <m:apply>
			<m:times/>
			<m:ci>α</m:ci>
			<m:ci>f</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:math>,
		  show
		  <m:math display="inline">
		    <m:apply>
		      <m:eq/>
		      <m:apply>
			<m:abs/>
			<m:apply>
			  <m:scalarproduct/>
			  <m:ci>f</m:ci>
			  <m:ci>g</m:ci>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:times/>
			<m:apply>
			  <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			  <m:ci>f</m:ci>
			</m:apply>
			<m:apply>
			  <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			  <m:ci>g</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:math>
		  
		  <m:math display="block">
		    <m:apply>
		      <m:eq/>
		      <m:apply>
			<m:abs/>
			<m:apply>
			  <m:scalarproduct/>
			  <m:ci>f</m:ci>
			  <m:ci>g</m:ci>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:abs/>
			<m:apply>
			  <m:scalarproduct/>
			  <m:ci>f</m:ci>
			  <m:apply>
			    <m:times/>
			    <m:ci>α</m:ci>
			    <m:ci>f</m:ci>
			  </m:apply>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:times/>
			<m:apply>
			  <m:abs/>
			  <m:ci>α</m:ci>
			</m:apply>
			<m:apply>
			  <m:abs/>
			  <m:apply>
			    <m:scalarproduct/>
			    <m:ci>f</m:ci>
			    <m:ci>f</m:ci>
			  </m:apply>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:times/>
			<m:apply>
			  <m:abs/>
			  <m:ci>α</m:ci>
			</m:apply>
			<m:apply>
			  <m:power/>
			  <m:apply>
			    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			    <m:ci>f</m:ci>
			  </m:apply>
			  <m:cn>2</m:cn>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:math>	     

		  <m:math display="block">
		    <m:apply>
		      <m:eq/>
		      <m:apply>
			<m:abs/>
			<m:apply>
			  <m:scalarproduct/>
			  <m:ci>f</m:ci>
			  <m:ci>g</m:ci>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:times/>
			<m:apply>
			  <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			  <m:ci>f</m:ci>
			</m:apply>
			<m:apply>
			  <m:times/>
			  <m:apply>
			    <m:abs/>
			    <m:ci>α</m:ci>
			  </m:apply>
			  <m:apply>
			    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			    <m:ci>f</m:ci>
			  </m:apply>
			</m:apply>		  
		      </m:apply>
		      <m:apply>
			<m:times/>
			<m:apply>
			  <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			  <m:ci>f</m:ci>
			</m:apply>
			<m:apply>
			  <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			  <m:ci>g</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:math>

		  This verifies our above statement of the CSI!		      
	      </item>

	      <item>
		  
		If    
		  <m:math display="inline">
		    <m:apply>
		      <m:neq/>
		      <m:ci>g</m:ci>
		      <m:apply>
			<m:times/>
			<m:ci>α</m:ci>
			<m:ci>f</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:math>,
		  show
		  <m:math display="inline">
		    <m:apply>
		      <m:lt/>
		      <m:apply>
			<m:abs/>
			<m:apply>
			  <m:scalarproduct/>
			  <m:ci>f</m:ci>
			  <m:ci>g</m:ci>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:times/>
			<m:apply>
			  <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			  <m:ci>f</m:ci>
			</m:apply>
			<m:apply>
			  <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			  <m:ci>g</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:math>

		  where we have 
		  <m:math display="inline">
		    <m:apply>
		      <m:forall/>
		      <m:bvar>
			<m:ci>β</m:ci>
		      </m:bvar>
		      <m:condition>
			<m:apply>
			  <m:in/>
			  <m:ci>β</m:ci>
			  <m:reals/>
			</m:apply>
		      </m:condition>
		      <m:apply>
			<m:neq/>
			<m:apply>
			  <m:plus/>
			  <m:apply>
			    <m:times/>
			    <m:ci>β</m:ci>
			    <m:ci>f</m:ci>
			  </m:apply>
			  <m:ci>g</m:ci>
			</m:apply>
			<m:cn>0</m:cn>
		      </m:apply>
		    </m:apply>
		  </m:math> 

		  <m:math display="block">
		    <m:apply>
		      <m:eq/>
		      <m:apply>
			<m:lt/>
			<m:cn>0</m:cn>
			<m:apply>
			  <m:power/>
			  <m:apply>
			    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			    <m:apply>
			      <m:plus/>
			      <m:apply>
				<m:times/>
				<m:ci>β</m:ci>
				<m:ci>f</m:ci>
			      </m:apply>
			      <m:ci>g</m:ci>
			    </m:apply>
			  </m:apply>
			  <m:cn>2</m:cn>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:scalarproduct/>
			<m:apply>
			  <m:plus/>
			  <m:apply>
			    <m:times/>
			    <m:ci>β</m:ci>
			    <m:ci>f</m:ci>
			  </m:apply>
			  <m:ci>g</m:ci>
			</m:apply>
			<m:apply>
			  <m:plus/>
			  <m:apply>
			    <m:times/>
			    <m:ci>β</m:ci>
			    <m:ci>f</m:ci>
			  </m:apply>
			  <m:ci>g</m:ci>
			</m:apply>		    
		      </m:apply>
		      <m:apply>
			<m:plus/>
			<m:apply>
			  <m:times/>
			  <m:apply>
			    <m:power/>
			    <m:ci>β</m:ci>
			    <m:cn>2</m:cn>
			  </m:apply>
			  <m:apply>
			    <m:scalarproduct/>
			    <m:ci>f</m:ci>
			    <m:ci>f</m:ci>
			  </m:apply>
			</m:apply>
			<m:apply>
			  <m:times/>
			  <m:cn>2</m:cn>
			  <m:ci>β</m:ci>
			  <m:apply>
			    <m:scalarproduct/>
			    <m:ci>f</m:ci>
			    <m:ci>g</m:ci>
			  </m:apply>
			</m:apply>
			<m:apply>
			  <m:scalarproduct/>
			  <m:ci>g</m:ci>
			  <m:ci>g</m:ci>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:math>
		  

		  <m:math display="block">
		    <m:apply>
		      <m:eq/>
		      <m:apply>
			<m:plus/>
			<m:apply>
			  <m:times/>
			  <m:apply>
			    <m:power/>
			    <m:ci>β</m:ci>
			    <m:cn>2</m:cn>
			  </m:apply>
			  <m:apply>
			    <m:power/>
			    <m:apply>
			      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			      <m:ci>f</m:ci>
			    </m:apply>
			    <m:cn>2</m:cn>
			  </m:apply>
			</m:apply>
			<m:apply>
			  <m:times/>
			  <m:cn>2</m:cn>
			  <m:ci>β</m:ci>
			  <m:apply>
			    <m:scalarproduct/>
			    <m:ci>f</m:ci>
			    <m:ci>g</m:ci>
			  </m:apply>
			</m:apply>
			<m:apply>
			  <m:power/>
			  <m:apply>
			    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			    <m:ci>g</m:ci>
			  </m:apply>
			  <m:cn>2</m:cn>
			</m:apply>
		      </m:apply>
		    </m:apply>
		  </m:math>

		  And we get a quadratic in <m:math><m:ci>β</m:ci>
		  </m:math>.  Visually, the quadratic polynomial in
		  <m:math>
		    <m:apply>
		      <m:gt/>
		      <m:ci>β</m:ci>
		      <m:cn>0</m:cn>
		    </m:apply>
		  </m:math> 
		  for all <m:math><m:ci>β</m:ci></m:math>.  Also, note
		  that this polynomial has no real roots and the
		  discriminant is less than 0.
	   
		- BLAH BLAH BLAH --
		
	      <m:math display="block">
		<m:apply>
		  <m:plus/>
		  <m:apply>
		    <m:times/>
		    <m:ci>a</m:ci>
		    <m:apply>
		      <m:power/> 
		      <m:ci>β</m:ci> 
		      <m:cn>2</m:cn>
		    </m:apply>
		  </m:apply>
		  <m:apply>
		    <m:times/> 
		    <m:ci>b</m:ci> 
		    <m:ci>β</m:ci>
		  </m:apply>
		  <m:ci>c</m:ci>
		</m:apply>
	      </m:math> has discriminant
	      <m:math display="inline">
		<m:apply>
		  <m:minus/>
		  <m:apply>
		    <m:power/> 
		    <m:ci>β</m:ci> 
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:times/>
		    <m:cn>4</m:cn>
		    <m:ci>a</m:ci>
		    <m:ci>c</m:ci>
		  </m:apply>
		</m:apply>
	      </m:math> where we have:

	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:ci>a</m:ci>
		  <m:apply>
		    <m:power/>
		    <m:apply>
		      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
		      <m:ci>f</m:ci>
		    </m:apply>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>
	      </m:math>
	      
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:ci>b</m:ci>
		  <m:apply>
		    <m:times/>
		    <m:cn>2</m:cn>
		    <m:apply>
		      <m:scalarproduct/>
		      <m:ci>f</m:ci>
		      <m:ci>g</m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:math>
	      
	      <m:math display="block">
		<m:apply>
		  <m:eq/>
		  <m:ci>c</m:ci>
		  <m:apply>
		    <m:power/>
		    <m:apply>
		      <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
		      <m:ci>g</m:ci>
		    </m:apply>
		    <m:cn>2</m:cn>
		  </m:apply>		  
		</m:apply>
	      </m:math>
	      
	      Therefore, we can plug this values into the above
	      polynomials discriminant to get:

	      <equation id="eq8">
		<m:math>
		  <m:apply>
		    <m:lt/>
		    <m:apply>
		      <m:minus/>
		      <m:apply>
			<m:times/>
			<m:cn>4</m:cn>
			<m:apply>
			  <m:power/>
			  <m:apply>
			    <m:abs/>
			    <m:apply>
			      <m:scalarproduct/>
			      <m:ci>f</m:ci>
			      <m:ci>g</m:ci>
			    </m:apply>
			  </m:apply>
			  <m:cn>2</m:cn>
			</m:apply>
		      </m:apply>
		      <m:apply>
			<m:times/>
			<m:cn>4</m:cn>
			<m:apply>
			  <m:power/>
			  <m:apply>
			    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			    <m:ci>f</m:ci>
			  </m:apply>
			  <m:cn>2</m:cn>
			</m:apply>
			<m:apply>
			  <m:power/>
			  <m:apply>
			    <m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			    <m:ci>g</m:ci>
			  </m:apply>
			  <m:cn>2</m:cn>
			</m:apply>
		      </m:apply>
		    </m:apply>
		    <m:cn>0</m:cn>
		  </m:apply>
		</m:math>
	      </equation>

	      <equation id="eq9">
		<m:math>
		  <m:apply>
		    <m:lt/>
		    <m:apply>
		      <m:abs/>
		      <m:apply>
			<m:scalarproduct/>
			<m:ci>f</m:ci>
			<m:ci>g</m:ci>
		      </m:apply>
		    </m:apply>
		    <m:apply>
		      <m:times/>
		      <m:apply>
			<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			<m:ci>f</m:ci>
		      </m:apply>
		      <m:apply>
			<m:csymbol definitionURL="http://cnx.rice.edu/cd/cnxmath.ocd#norm"/>
			<m:ci>g</m:ci>
		      </m:apply>
		    </m:apply>
		  </m:apply>
		</m:math>
	      </equation>

	      And finally we have proven the Cauchy-Schwarz Inequality
	      formula for real vectors spaces.
		
		<note type="question">
		  What changes do we have to make to the proof for a
		  complex vector space?  (try to figure this out at
		  home)
		</note>
	      </item>
	    </list>
	  </proof>
	</rule>
	
      </para>
    </section>

  </content>
</document>
