<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - Bart De Smet: LINQ to Z3</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3/RSS"></atom:link>
	<image>
		<url>http://ecn.channel9.msdn.com/o9/ch9/a260/5b562119-0a81-4f61-b182-9e300187a260/BartDeSmetLINQtoZ3_100_ch9.jpg</url>
		<title>Channel 9 - Bart De Smet: LINQ to Z3</title>
		<link></link>
	</image>
	<description> &amp;nbsp; Bart De Smet is one of the highly talented software engineers on Erik Meijer&#39;s team and the chief architect of the LINQ to Anything dream. You should watch his excellent PDC10 session on this topic.As you learned on Channel 9 Live&#39;s PDC10 conversation with Wolfram Schulte and Erik Meijer, Z3 is a theorem prover (the fastest in the world, in fact). Z3 is one of several advanced software engineering technologies coming out of MSR&#39;s RiSE team. A while ago, Bart implemented a LINQ to Z3 library and I&#39;ve wanted to dig into this with him for some time. Recently, I got the chance to do just that and it makes for an excellent episode of Going Deep. Bart writes in his initial post on the LINQ to Z3 project: With LINQ to Z3 my goal is to abstract away from the low-level Z3 APIs and provide nice syntax with rich static typing support on top of it. The basic idea is the following: Define the “shape” of a theorem, e.g. what symbolic names (and their types) to use;Express constraints over those symbolic names using LINQ syntax (more specifically the where keyword);Ask the resulting object for a solution, resulting in an instance of the “shape” type specified at the start.An example of LINQ to Z3: var theorem = from t in ctx.NewTheorem&amp;lt;Symbols&amp;lt;int, int, int, int, int&amp;gt;&amp;gt;()
              where t.X1 - t.X2 &amp;gt;= 1
              where t.X1 - t.X2 &amp;lt;= 3
              where t.X1 == (2 * t.X3) &amp;#43; t.X5
              where t.X3 == t.X5
              where t.X2 == 6 * t.X4
              select t;
var solution = theorem.Solve();
Console.WriteLine(&amp;quot;X1 = {0}, X2 = {1}, X3 = {2}, X4 = {3}, X5 = {4}&amp;quot;, solution.X1, solution.X2, solution.X3, solution.X4, solution.X5); How does LINQ to Z3 work, exactly? Why did Bart do this? What is Z3 useful for? How does it work? Here, we get answers to all of these questions with lots of meaty whiteboarding and demo at the end of the conversation. As usual, there is a lot of information presented here and in a way that is readily understandable by non-experts - this is one of Bart&#39;s excellent traits: clearly explaining complex subjects so you don&#39;t have to be as smart as Bart to fully understand. I left Bart&#39;s office with better understanding of LINQ, Z3 and LINQ to Z3 (also Solver Foundation and Bart&#39;s definition of monad....). Thank you, Bart!  By the way, this is&amp;nbsp;espisode 201 of&amp;nbsp;Going Deep. Bart and LINQ were the focus for the 100th episode. It&#39;s nice to have this 100 episode cycle (LINQ to Anything is LINQ to Everything in this revolution). Thanks to all who have made this series truly interesting! Here&#39;s to 200 more.Tune in.  Learn. Enjoy. Code. </description>
	<link></link>
	<language>en</language>
	<pubDate>Sun, 19 May 2013 12:33:42 GMT</pubDate>
	<lastBuildDate>Sun, 19 May 2013 12:33:42 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>Yes! linq-to-z3 lives <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-2.gif?v=c9' alt='Big Smile' /> does this mean you're going to resume that blog series bart? <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>people who havent really needs to watch barts pdc talk, its pure awsomeness </p><p>posted by aL_</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261451680000000</link>
		<pubDate>Tue, 23 Nov 2010 21:39:28 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261451680000000</guid>
		<dc:creator>aL_</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>Here's the link to Bart's PDC10 session that requires Silverlight (the one I included in the description is a link to the WMV file for download): <a href="http://bit.ly/bfzKCk">http://bit.ly/bfzKCk</a></p><p>Get all the related download materials for Bart's talk&nbsp;at <a href="http://microsoftpdc.com">http://microsoftpdc.com</a></p><p>C</p><p class="DownloadMaterials">&nbsp;</p><p>&nbsp;</p><p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261456890000000</link>
		<pubDate>Tue, 23 Nov 2010 21:48:09 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261456890000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>Oh yes, I've also wondered about the relation between Z3 and Solver Foundation. How they overlap, if one is the successor of the other or they are meant to be complementary.</p><p>I like using asynchrony for exiting the monad, in particular what about this:</p><p>Sum: (IEnumerable&lt;T&gt; | IObservable&lt;T&gt;) -&gt; Maybe&lt;T&gt; such that result: Maybe&lt;T&gt; : IObservable&lt;T&gt; where result.Count() = 1 &nbsp;(Z3 constraint)</p><p>Maybe use IQbservable perhaps...</p><p>Watching rest after (incredibly long iPad iOS update <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-6.gif?v=c9' alt='Sad' /> ..)</p><p>Edit: On second thought: the obvious name for Maybe&lt;T&gt; is not Maybe&lt;T&gt; it's of course:<br><br>MaybeLater&lt;T&gt;!&nbsp;</p><p>posted by exoteric</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261482600000000</link>
		<pubDate>Tue, 23 Nov 2010 22:31:00 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261482600000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634261482600000000">exoteric</a>: Good thinking, exo. LINQ to Solver Foundation is probably already on Bart's LINQ invention list. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /><br><br>C</p><p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261485560000000</link>
		<pubDate>Tue, 23 Nov 2010 22:35:56 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261485560000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>Someone needs to use L2Z3 and create a library of purity constraints so that any program can be analyzed for optimizability; next step of course to use those to simplify programs <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>Love the explanation of Sudoku base theory.</p><p>posted by exoteric</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261540490000000</link>
		<pubDate>Wed, 24 Nov 2010 00:07:29 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261540490000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>i really really hope linq-2-z3 makes it out into a library that people can use <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /> </p><p>also, i wonder if you could use the &quot;let&quot; keyword to define z3 symbols instead of using the ghost type:</p><p><pre class="brush: csharp">from s in theoremcontext
let symbol1 = s.makesymbol&lt;int&gt;()
let symbol2 = s.makesymbol&lt;int&gt;()
where symbol1 &gt; symbol2
select new {symbol1, symbol2};</pre></p><p>in might be problematic because the &quot;T&quot; in Theorem&lt;T&gt; is defined in the final select, if you dont include all the symbols youve declared in the query, they woudnt appear in the proof.. still, the syntax whould be pretty nice <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /> </p><p>posted by aL_</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261556580000000</link>
		<pubDate>Wed, 24 Nov 2010 00:34:18 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261556580000000</guid>
		<dc:creator>aL_</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>Very interesting!&nbsp; My mind is spinning with crazy ideas about how to use this.</p><p>posted by Richard.Hein</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261586340000000</link>
		<pubDate>Wed, 24 Nov 2010 01:23:54 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634261586340000000</guid>
		<dc:creator>Richard.Hein</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>LINM, yeah. but when you Linq to Everything, does those Standard Query Operators works smoothly for 'everything' ? and if customized operators can only be used as extension methods, this weakens the 'language intergrated' part. can Compier-as-a-Service help ?</p><p>and Z3 rules, cant wait to see it get its way into more places as the core infrastructure of system platforms.</p><p>posted by felix9</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262000450000000</link>
		<pubDate>Wed, 24 Nov 2010 12:54:05 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262000450000000</guid>
		<dc:creator>felix9</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[This sounds interesting, I'd love to watch it.<br /><br />However, even the "Lo-band, Mobile" version is a 1GB download? You've got to be kidding...<br /><p>posted by meta-commenter</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262263700000000</link>
		<pubDate>Wed, 24 Nov 2010 20:12:50 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262263700000000</guid>
		<dc:creator>meta-commenter</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p><blockquote><div class="quoteText"></p><p><a class="permalink" title="Comment Permalink" href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634262263700000000">4 minutes&nbsp;ago</a></p><p>This sounds interesting, I'd love to watch it. However, even the &quot;Lo-band, Mobile&quot; version is a 1GB download? You've got to be kidding... </p><p></div></blockquote></p><p>In fact, the MP4 for mobile&nbsp;file&nbsp;is 420MB... No kidding.<br>C</p><p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262268420000000</link>
		<pubDate>Wed, 24 Nov 2010 20:20:42 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262268420000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[The MS Dutch Mafia strikes again! :)<p>posted by Batman</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262278270000000</link>
		<pubDate>Wed, 24 Nov 2010 20:37:07 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262278270000000</guid>
		<dc:creator>Batman</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p><blockquote><div class="quoteText"></p><p><a class="permalink" title="Comment Permalink" href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634262278270000000">55 seconds&nbsp;ago</a></p><p>The MS Dutch Mafia strikes again! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p></div></blockquote></p><p>Bart is from the Kingdom of Belgium, technically&nbsp;<img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262279820000000</link>
		<pubDate>Wed, 24 Nov 2010 20:39:42 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262279820000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>Wicked cool. Keep up the great work!</p><p>posted by gbrayut</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262316340000000</link>
		<pubDate>Wed, 24 Nov 2010 21:40:34 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262316340000000</guid>
		<dc:creator>gbrayut</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[Great work, very cool!<p>posted by Jules</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262403980000000</link>
		<pubDate>Thu, 25 Nov 2010 00:06:38 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262403980000000</guid>
		<dc:creator>Jules</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>This is very nice.</p><p>But what I am really looking forward to is LIM to &quot;compiler service&quot; when it comes out. It's going to be pretty cool to compose run time generated programs. And something tells me this is what Bart is secretly working on since his blog post about LINQ to Z3 is from April 2009 <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>posted by Kyrae</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262418210000000</link>
		<pubDate>Thu, 25 Nov 2010 00:30:21 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262418210000000</guid>
		<dc:creator>Kyrae</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p><a href="http://www.dict.cc/englisch-deutsch/inspiring.html">@</a><a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634262279820000000">Charles</a>: Right, though Bart is probably from the Flemish (Dutch-speaking) part of Belgium. At least that is what I would guess due to his accent.</p><p>Great, inspiring interview, btw.</p><p>posted by Novox</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262805210000000</link>
		<pubDate>Thu, 25 Nov 2010 11:15:21 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262805210000000</guid>
		<dc:creator>Novox</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634261451680000000">aL_</a>: No commitments for a <em>continuation</em> (pun intended) of my blog series on the subject just yet. Expect an update after noodling around a bit more with Solver Foundation.</p><p>posted by bdesmet</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262834190000000</link>
		<pubDate>Thu, 25 Nov 2010 12:03:39 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262834190000000</guid>
		<dc:creator>bdesmet</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634261540490000000">exoteric</a>: A lot of real-world technologies already use Z3, cf. their portofolio mentioned in various presentations (see <a href="http://research.microsoft.com/en-us/um/redmond/projects/z3/documentation.html">http://research.microsoft.com/en-us/um/redmond/projects/z3/documentation.html</a>&nbsp;for some links, e.g. to the Slides for WING 2009, cf. slide number 4). But creative minds can of course go crazy using Z3, subject to its academic license that is (no, I'm not an attorney <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif?v=c9' alt='Wink' />).</p><p>Concerning Z3 versus Solver Foundation, I think the <em>versus</em> approach used for technology <em>comparison</em> is&nbsp;a little misplaced. Sure, there's some overlap, but Solver Foundation has its own strength and positioning in the market. Referring to it by its codename, &quot;Optima&quot;, you should get some good insights in the kinds of problems it specifically aims to tackle. The target audience is also much further away from low-level software plumbers, more into the realm of business analysist (cf. its plug-in with Excel).</p><p>Once we make progress on (still hypothetical) Solver Foundation bridges using LINQ, I'll provide you with an update through the known channels <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif?v=c9' alt='Wink' />.</p><p>posted by bdesmet</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262838600000000</link>
		<pubDate>Thu, 25 Nov 2010 12:11:00 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262838600000000</guid>
		<dc:creator>bdesmet</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634261556580000000">aL_</a>: Your idea of using let-bindings in query expressions is definitely worth looking at. In fact, I've done something along those lines before (I won't elaborate on the broader context there just yet, in order to whet the appetite of the Niners&nbsp;<img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif?v=c9' alt='Wink' />). One drawback is its use of Select underneath (through compile-time erasure using transparent identifiers), which makes it indistinguishable from proper select clauses. Hence, we open the door for more expressive queries written by the user, for better or for worse. This said, some tricks can be played.</p><p>posted by bdesmet</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262840190000000</link>
		<pubDate>Thu, 25 Nov 2010 12:13:39 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262840190000000</guid>
		<dc:creator>bdesmet</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634262000450000000">felix9</a>: Standard Query Operators go only as far as what was once deemed &quot;standard&quot; and applicable to &quot;queries&quot;. Monads are a superset of sequence-style query comprehensions.</p><p>Let's elaborate a bit on those points. First, even within the domain of querying, different data models or acquisition methods can give rise to other kinds of operators. For example, the push-based nature of IObservable&lt;T&gt; makes it a very natural candidate for signal-based programming where an observable sequence acts as a signal wire (e.g. TakeUntil). While it'd be very natural to expose such capabilities using language-integrated constructs, that may be a bit of a stretch as it goes beyond general purposing querying (which, till further notice, LINQ is about). Similarly, time-centric operators open up for a whole series of imaginary additions as well.</p><p>Personally, I do like the query comprehension syntax for the things it's good at. At some point, you'll for sure run short on the provided keywords (with varying mileage in C# versus VB, the latter of which has more keywords added for LINQ), but you can quite gradually &quot;ease into&quot; the dotting style of operator chaining (unless you have to insert between existing clauses, bad luck if you don't like some wholesale refactoring of the query expression).</p><p>Stricly speaking, you'd only need SelectMany (aka &quot;bind&quot;)&nbsp;support (&quot;do&quot;-notation in Haskell, multiple from clauses in C#), to have all the power of monads at your service, assuming there are ways to &quot;return&quot; into the monad (e.g. new[] { value } for enumerables, Observable.Return for observables, etc.). Obviously that's too minimalistic (search for my project called MinLINQ to see this extremism in practice).</p><p>Finally, on the CaaS front, it's not at all sure at this point whether language syntax will be provided as an extensibility point, unless you can go in and extend the lexer and parser itself (causing you to create a new &quot;dialect&quot; of C#/VB altogether). Doing so definitely would limit the movements the benevolent dictators of the language design can take going forward (&quot;oops, we may be clashing here with the 'bar' keyword introduced by customer 'foo' for the 'baz' dialect of C#&quot;). The fluent nature of extension methods&nbsp;and the (relative, that is, without the support for &quot;sectioning&quot;) conciseness of lambda expressions makes C# already a fairly good host for internal DSLs that follow an API-centric design. Popular patterns can always be lifted into proper language constructs, e.g. LINQ and the new &quot;await&quot; stuff.</p><p>posted by bdesmet</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262847700000000</link>
		<pubDate>Thu, 25 Nov 2010 12:26:10 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262847700000000</guid>
		<dc:creator>bdesmet</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634262278270000000">Batman</a>: @Charles: @Novox: The Flemish part it is indeed.&nbsp;For a&nbsp;good introduction into the many sub-atomic (due to the size) dimensions (due to regions, governments, languages, etc.) of the country Belgium, have a look at <a href="http://www.youtube.com/watch?v=QlwHotpl9DA">http://www.youtube.com/watch?v=QlwHotpl9DA</a>&nbsp;(obviously they're wrong about the &quot;Swiss chocolate&quot; and &quot;French fries&quot; <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif?v=c9' alt='Tongue Out' />).</p><p>I'm personally from the area around Ghent (visit using Bing maps: <a href="http://www.bing.com/maps/?v=2&amp;cp=sh8826h998kx&amp;lvl=18.21744759896361&amp;dir=2.693629766958403&amp;sty=b&amp;where1=Ghent%2C%20Belgium&amp;q=ghent">http://www.bing.com/maps/?v=2&amp;cp=sh8826h998kx&amp;lvl=18.21744759896361&amp;dir=2.693629766958403&amp;sty=b&amp;where1=Ghent%2C%20Belgium&amp;q=ghent</a>), so my accent is definitely Dutch, though I speak a bit of French and German as well.</p><p>posted by bdesmet</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262854120000000</link>
		<pubDate>Thu, 25 Nov 2010 12:36:52 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262854120000000</guid>
		<dc:creator>bdesmet</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634262418210000000">Kyrae</a>: Some interesting thoughts you have there <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' />.</p><p>posted by bdesmet</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262854420000000</link>
		<pubDate>Thu, 25 Nov 2010 12:37:22 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262854420000000</guid>
		<dc:creator>bdesmet</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[[quote]<br />17 hours&nbsp;ago, Charles wrote<br />*snip*<br />Bart is from the Kingdom of Belgium, technically&nbsp;<br /><br />[/quote]<br />His accent is very telling, he must be Flemish at least. Let's ask him: Hey Bart, are you Flemish?<br />:) :) :)<p>posted by Batman</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262906450000000</link>
		<pubDate>Thu, 25 Nov 2010 14:04:05 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262906450000000</guid>
		<dc:creator>Batman</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[@Batman:Oops he already answered! hehe<p>posted by Batman</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262907870000000</link>
		<pubDate>Thu, 25 Nov 2010 14:06:27 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262907870000000</guid>
		<dc:creator>Batman</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634262840190000000">bdesmet</a>: tease <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif?v=c9' alt='Wink' /></p><p>i'd love to see more blog posts and c9 content on expressions trees and how you can bend them to your will in the context of linq providers and other things.. Expression&lt;Func&lt;T&gt;&gt; is one of those things that i have a feeling is extraordinarily powerful but that i just barely know how to handle, but one wrong step i'd come tumbling down</p><p>z3 is even further down those lines, it seems almost like witchcraft, you ask it anything and it just replies with an awnser that is garantueed to be correct. you&nbsp;&quot;just&quot; have to be sure you ask it the right question <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif?v=c9' alt='Tongue Out' /> </p><p>&nbsp;</p><p>posted by aL_</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262966630000000</link>
		<pubDate>Thu, 25 Nov 2010 15:44:23 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634262966630000000</guid>
		<dc:creator>aL_</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>Currently watching the video and it's nice so far. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>Also, when Bart used the word &quot;aspect&quot; in his explanation of what a monad is, I was reminded of the following paper: <a href="http://www.eecs.ucf.edu/FOAL/papers-2007/Hofer-Ostermann.pdf">On the relation of aspects and monads</a>.</p><p>posted by ShinNoNoir</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634263905030000000</link>
		<pubDate>Fri, 26 Nov 2010 17:48:23 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634263905030000000</guid>
		<dc:creator>ShinNoNoir</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>Bart, do you have any plans to update your blog post to reflect the changes to the managed Z3 API?</p><p>EDIT: i've managed to get a version of Bart's code to build/run against Z3 v2.15, but i don't think i can share it since i can't find a license on Bart's blog <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-6.gif?v=c9' alt='Sad' /></p><p>posted by piersh</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634264174640000000</link>
		<pubDate>Sat, 27 Nov 2010 01:17:44 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634264174640000000</guid>
		<dc:creator>piersh</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[BTW, perhaps a further episode can do an interview with Z3 people about the inner workings of the algoritms of Z3. Perhaps that's a bit too deep, but it would be very interesting :)<p>posted by Jules</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634265584480000000</link>
		<pubDate>Sun, 28 Nov 2010 16:27:28 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634265584480000000</guid>
		<dc:creator>Jules</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>I have a friend who works on another SMT solver, (that's actually available under an open source license instead of the onerous MSR-LA terms), <a href="http://cs.nyu.edu/acsys/cvc3/">CVC3</a>. Hmm, a LINQ provider for it might be an interesting project ... </p><p>posted by contextfree</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634265739990000000</link>
		<pubDate>Sun, 28 Nov 2010 20:46:39 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634265739990000000</guid>
		<dc:creator>contextfree</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634264174640000000">piersh</a>: I'll figure out a way to get the bits to the community in the forseeable future. Likely some further exploration is desired to streamline the experience further and have more Z3 constructs exposed through the API. Stay tuned.</p><p>posted by bdesmet</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634266018530000000</link>
		<pubDate>Mon, 29 Nov 2010 04:30:53 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634266018530000000</guid>
		<dc:creator>bdesmet</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634262966630000000">aL_</a>: Will see what we can do around this in the future. This said, expression trees are more of a tool than a destination. However, as more LINQ to Anything stuff materializes, I can see some good fit for a future episode that would benefit from further explanation of those animals.</p><p>posted by bdesmet</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634266019580000000</link>
		<pubDate>Mon, 29 Nov 2010 04:32:38 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634266019580000000</guid>
		<dc:creator>bdesmet</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634266019580000000">bdesmet</a>:</p><p>looking forward to it <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>posted by aL_</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634266187310000000</link>
		<pubDate>Mon, 29 Nov 2010 09:12:11 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634266187310000000</guid>
		<dc:creator>aL_</dc:creator>
	</item>
	<item>
		<title>Re: Bart De Smet: LINQ to Z3</title>
		<description>
			<![CDATA[ <p>@<a href="/Shows/Going&#43;Deep/Bart-De-Smet-LINQ-to-Z3#c634262838600000000">bdesmet</a>:great stuff indeed greetings from Italy <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p><p>posted by parseval</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634267091350000000</link>
		<pubDate>Tue, 30 Nov 2010 10:18:55 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Bart-De-Smet-LINQ-to-Z3#c634267091350000000</guid>
		<dc:creator>parseval</dc:creator>
	</item>
</channel>
</rss>