COMPUTATINAL ENCODING OF FUNCTION SPACES

Eric Weisstein (Wolfram Research)
Lin Cong (UIUC)

Wolfram Technology Conference
October 21, 2016

Join the Conversation #WolframTechConf

Introduction

testbed for representing "real" mathematical objects with nontrivial properties and relations within the entity-property framework

brainchild of Stephen Wolfram and Michael Trott

carried out from December 2014–July 2016

worked on by:

Christopher Stover (Wolfram Research and Florida State University)

Eric Weisstein (Wolfram Research)

James Mulnix (Wolfram Research)

Lin Cong (Wolfram Research intern and UIUC)

consists of three parts: FunctionSpace, TopologicalSpaceType, and FunctionalAnalysisSource

still developmental on Wolfram|Alpha and Mathematica (but approved for release after some changes)

Challenges

graduate-level mathematical knowledge of topology needed

existing literature on the subject is scattered, uses differing or inconsistent terminology, notation, ...

standard names "naturally" should contain parameters, encode measure space, ...

"pure math" stub extensions to the Wolfram Language needed

Function spaces

A function space is a set of functions of a given kind from a set X to a set Y. It is called a space because in many applications it is a topological space and is often associated with a measure space.

Common examples:

(L^p) spaces (Lebesgue spaces): defined using a natural generalization of the p-norm for finite-dimensional vector spaces

(Entity[(RowDefault["Lebesgue space ", (Superscript["L", "\[FormalP]"]), (, (Superscript["ℝ", "\[FormalN]"]), ", ", (RowDefault["\[DifferentialD]", (Superscript["x", "\[FormalN]"])]), )]), Entity["FunctionSpace",{{"LebesgueL",{{"Reals",\[FormalN]},{"LebesgueMeasure",\[FormalN]}}},\[FormalP]}], "Entity[\"FunctionSpace\", {{\"LebesgueL\", {{\"Reals\", \[FormalN]}, {\"LebesgueMeasure\", \[FormalN]}}}, \[FormalP]}]", "function space"])

(C^k) spaces: functions whose derivatives exist and are continuous up to kth order

(Entity["continuous space "(Superscript["C", "\[FormalK]"])("[""\[FormalA]"", ""\[FormalB]""]"), Entity["FunctionSpace",{{"ContinuouslyDifferentiableC",{"ClosedInterval",{\[FormalA],\[FormalB]}}},\[FormalK]}], "Entity[\"FunctionSpace\", {{\"ContinuouslyDifferentiableC\", {\"ClosedInterval\", {\[FormalA], \[FormalB]}}}, \[FormalK]}]", "function space"])

Source: Wikipedia

Topological spaces

A topological space may be defined as a set of points, along with a set of neighborhoods for each point, satisfying a set of axioms relating points and neighborhoods. The definition of a topological space relies only upon set theory and is the most general notion of a mathematical space that allows for the definition of concepts such as continuity, connectedness, and convergence. Other spaces, such as manifolds and metric spaces, are specializations of topological spaces with extra structures or constraints. Being so general, topological spaces are a central unifying notion and appear in virtually every branch of modern mathematics. The branch of mathematics that studies topological spaces in their own right is called point-set topology or general topology.

In short: more abstract than FunctionSpace elements (e.g., existence of norm as opposed to a definite norm).

Examples:

Banach space: a complete normed vector space

(Entity["Banach space", Entity["TopologicalSpaceType","BanachSpace"], "Entity[\"TopologicalSpaceType\", \"BanachSpace\"]", "topological space type"])

Hilbert space: an abstract vector space possessing the structure of an inner product that allows length and angle to be measured

(Entity["Hilbert space", Entity["TopologicalSpaceType","HilbertSpace"], "Entity[\"TopologicalSpaceType\", \"HilbertSpace\"]", "topological space type"])

Source: Wikipedia

Project scope

126 function spaces (many parametrized); 45 properties

39 topological space types; 14 properties

147 functional analysis sources; 49 properties

EntityValue[#,"EntityCount"]&/@{"FunctionSpace","TopologicalSpaceType","FunctionalAnalysisSource"}

FunctionSpace entities

RandomEntity["FunctionSpace",5]

Select[EntityValue["FunctionSpace","Entities"],!FreeQ[CanonicalName[#],"LebesgueL"]&]

EntityList["FunctionSpace"]

FunctionSpace properties

EntityValue["FunctionSpace","Properties"]

FunctionSpace in Wolfram|Alpha

devmode:Lebesgue space L^p(R^n,dx^n)

WolframAlpha["devmode: Lebesgue space L^p(ℝ^n,\[DifferentialD]x^n)"]

FunctionSpace EntityValue examples

l2=(Entity[(RowDefault["Lebesgue space ", (Superscript["L", 2]), (, (Superscript["ℝ", "\[FormalN]"]), ", ", (RowDefault["\[DifferentialD]", (Superscript["x", "\[FormalN]"])]), )]), Entity["FunctionSpace",{{"LebesgueL",{{"Reals",\[FormalN]},{"LebesgueMeasure",\[FormalN]}}},2}], "Entity[\"FunctionSpace\", {{\"LebesgueL\", {{\"Reals\", \[FormalN]}, {\"LebesgueMeasure\", \[FormalN]}}}, 2}]", "function space"]);

l2//InputForm

EntityValue[l2]["Parameters"]

EntityValue[l2,"ParameterRestrictions"]

EntityValue[l2,"Name"]

EntityValue[l2,"EponymousPeople"]

EntityValue[l2,"TypesetDescription"]

EntityValue[l2,"RelatedSpaces"]

FunctionSpace property association

l2=(Entity[(RowDefault["Lebesgue space ", (Superscript["L", 2]), (, (Superscript["ℝ", "\[FormalN]"]), ", ", (RowDefault["\[DifferentialD]", (Superscript["x", "\[FormalN]"])]), )]), Entity["FunctionSpace",{{"LebesgueL",{{"Reals",\[FormalN]},{"LebesgueMeasure",\[FormalN]}}},2}], "Entity[\"FunctionSpace\", {{\"LebesgueL\", {{\"Reals\", \[FormalN]}, {\"LebesgueMeasure\", \[FormalN]}}}, 2}]", "function space"]);

TextGrid[List@@@Normal[EntityValue[l2,"PropertyAssociation"]],Dividers->All,Background->{Automatic,{{LightBlue,None}}}]

FunctionSpace parametrized entity example

With[{props={"Norm","TypesetDescription","Classifications"},lebesgue=(Entity[(RowDefault["Lebesgue space ", (Superscript["L", "\[FormalP]"]), (, (Superscript["ℝ", "\[FormalN]"]), ", ", (RowDefault["\[DifferentialD]", (Superscript["x", "\[FormalN]"])]), )]), Entity["FunctionSpace",{{"LebesgueL",{{"Reals",\[FormalN]},{"LebesgueMeasure",\[FormalN]}}},\[FormalP]}], "Entity[\"FunctionSpace\", {{\"LebesgueL\", {{\"Reals\", \[FormalN]}, {\"LebesgueMeasure\", \[FormalN]}}}, \[FormalP]}]", "function space"])},TabView[Table[space->Grid[Transpose[{props,EntityValue[space,props]}],Dividers->All,Alignment->{Left,Center}],{space,{lebesgue,lebesgue/.\[FormalP]->1/3,lebesgue/.\[FormalP]->3,lebesgue/.\[FormalP]->"Infinity"}}]]]

TopologicalSpaceType entities and properties

EntityList["TopologicalSpaceType"]

EntityValue["TopologicalSpaceType","Properties"]

TopologicalSpaceType in Wolfram|Alpha

devmode: hilbert space

WolframAlpha["devmode: hilbert space"]

TopologicalSpaceType property association

TextGrid[List@@@Normal[EntityValue[Entity["TopologicalSpaceType","HilbertSpace"],"PropertyAssociation"]],Dividers->All,Background->{Automatic,{{LightBlue,None}}}]

TopologicalSpaceType relationship graph

EntityValue[Entity["TopologicalSpaceType","BanachSpace"],"MoreGeneralClassifications"]

Hierarchical directed graph of membership implications

g=EntityValue[Entity["TopologicalSpaceType","BanachSpace"],"RelationshipGraph"];

g=EdgeDelete[g,oops={"BanachSpace"\[DirectedEdge]"CompleteSpace","FrechetSpace"\[DirectedEdge]"BornologicalSpace","FrechetSpace"\[DirectedEdge]"CompactlyGeneratedSpace","FrechetSpace"\[DirectedEdge]"CompleteSpace","FrechetSpace"\[DirectedEdge]"MetrizableSpace","NormedSpace"\[DirectedEdge]"MetrizableSpace","ReflexiveSpace"\[DirectedEdge]"PseudoCompleteSpace"}]

Graph[EdgeList[g],VertexLabels->Placed["Name",Tooltip]]

TopologicalSpaceType implication checking

EdgeList[g]//Take[#,10]&

DeleteCases[Function[r,{r,Select[EntityList["TopologicalSpaceType"],Head[c=EntityValue[#,"MoreGeneralClassifications"]]=!=Missing&&#=!=r[[2]]&&Intersection[c[[All,2]],r1=Flatten[{r[[1]]}]]===r1&&!MemberQ[c[[All,2]],r[[2]]]&]}]/@EdgeList[g],{_,{}}]

FunctionalAnalysisSource

Domain for bibliographic data (papers, books) used by FunctionSpace and TopologicalSpaceType to store and format detailed references

Entities

sources=RandomEntity["FunctionalAnalysisSource",3]

Column[EntityValue[#,"FormattedReference"]&/@sources,Dividers->All]

Properties

EntityValue["FunctionalAnalysisSource","Properties"]

Classes

RandomSample[EntityValue["FunctionalAnalysisSource","EntityClasses"],10]

Parses

devmode:functional analysis papers from the 1940’s

devmode:functional analysis works by Grothendieck

devmode:besov’s 1959 functional analysis paper

devmode:functional analysis papers in italian

Computability I: Duality of (L^p) and (L^q) with (1/p)+(1/q)==1

Definition

lp=(Entity[(RowDefault["Lebesgue space ", (Superscript["L", "\[FormalP]"]), (, (Superscript["ℝ", "\[FormalN]"]), ", ", (RowDefault["\[DifferentialD]", (Superscript["x", "\[FormalN]"])]), )]), Entity["FunctionSpace",{{"LebesgueL",{{"Reals",\[FormalN]},{"LebesgueMeasure",\[FormalN]}}},\[FormalP]}], "Entity[\"FunctionSpace\", {{\"LebesgueL\", {{\"Reals\", \[FormalN]}, {\"LebesgueMeasure\", \[FormalN]}}}, \[FormalP]}]", "function space"]);

EntityValue[lp,"TypesetDescription"]

(L^q) = dual space of (L^p) (p ≥ 1)

lq=EntityValue[lp,"DualSpace"]

Dual space of (L^q)

EntityValue[lq,"DualSpace"]

%//Simplify

%==lp

((((L^p)))^( ** ))=(L^p)

EntityValue[lq,"DualSpace"]//Simplify

%==lp

EntityValue[Entity["TopologicalSpaceType","ReflexiveSpace"],"TypesetDescription"]

MemberQ[CanonicalName/@EntityValue[lp/.\[FormalP]->2,"Classifications"],"ReflexiveSpace"]

Computability II: Norm, inner product, ...

l2=(Entity[(RowDefault["Lebesgue space ", (Superscript["L", 2]), (, (Superscript["ℝ", "\[FormalN]"]), ", ", (RowDefault["\[DifferentialD]", (Superscript["x", "\[FormalN]"])]), )]), Entity["FunctionSpace",{{"LebesgueL",{{"Reals",\[FormalN]},{"LebesgueMeasure",\[FormalN]}}},2}], "Entity[\"FunctionSpace\", {{\"LebesgueL\", {{\"Reals\", \[FormalN]}, {\"LebesgueMeasure\", \[FormalN]}}}, 2}]", "function space"]);

fromentity[fn_]:=fn/.{
 {\[FormalX],MeasureSpace[(Reals^(n_)),LebesgueMeasure[n_]]}->{\[FormalX],-∞,∞},
 Inactive[Integrate]->Integrate,
 Conjugate[f_][x_]:> Conjugate[f[x]]
}

f1[x_]:=Exp[-x^2]
f2[x_]:=Piecewise[{{1-x^2,Abs[x]<1},{0,True}}]

Norm

l2norm=EntityValue[l2, "Norm"]

fromentity[l2norm]

l2norm/@{f1,f2}

fromentity/@%

Inner product

l2inner=EntityValue[l2,"InnerProduct"]

l2inner[f1,f2]

fromentity[%]

Verify Cauchy-Schwarz inequality is satisfied

EntityValue[l2/.\[FormalN]->1,"CauchySchwarzInequality"][f1,f2]

Abs[fromentity[l2inner][f1,f2]]<=fromentity[l2norm][f1]*fromentity[l2norm][f2]

Computability III: Campanato-Morrey spaces

cm=Cases[{#,Or@@(StringMatchQ[Cases[CanonicalName[#],_String,∞],"*Campanato*"|"*Morrey*"])}&/@fs,{e_,True}:>e]

Diverse literature conventions

Definitions

Grid[Transpose[Function[r,{cm[[r]],EntityValue[cm[[r]],"TypesetDescription"]}]@{1,4}],Dividers->All]

Alternative Morrey definitions

Grid[Transpose[Function[r,{cm[[r]],EntityValue[cm[[r]],"ParameterRestrictions"],EntityValue[cm[[r]],"TypesetDescription"]}]@{4,5}],Dividers->All]