10 Cons ("_::/_" [66,65] 65) |
10 Cons ("_::/_" [66,65] 65) |
11 |
11 |
12 (*>*) |
12 (*>*) |
13 |
13 |
14 text_raw {* |
14 text_raw {* |
15 \renewcommand{\slidecaption}{Shanghai, 12.~April 2011} |
15 \renewcommand{\slidecaption}{Hefei, 15.~April 2011} |
16 |
16 |
17 \newcommand{\abst}[2]{#1.#2}% atom-abstraction |
17 \newcommand{\abst}[2]{#1.#2}% atom-abstraction |
18 \newcommand{\pair}[2]{\langle #1,#2\rangle} % pairing |
18 \newcommand{\pair}[2]{\langle #1,#2\rangle} % pairing |
19 \newcommand{\susp}{{\boldsymbol{\cdot}}}% for suspensions |
19 \newcommand{\susp}{{\boldsymbol{\cdot}}}% for suspensions |
20 \newcommand{\unit}{\langle\rangle}% unit |
20 \newcommand{\unit}{\langle\rangle}% unit |
126 \end{frame}} |
126 \end{frame}} |
127 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
127 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
128 *} |
128 *} |
129 |
129 |
130 |
130 |
|
131 text_raw {* |
|
132 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
133 \mode<presentation>{ |
|
134 \begin{frame}[c] |
|
135 \frametitle{3 Points} |
|
136 \large |
|
137 \begin{itemize} |
|
138 \item It is easy to make mistakes.\bigskip |
|
139 \item Theorem provers can prevent mistakes, {\bf if} the problem |
|
140 is formulated so that it is suitable for theorem provers.\bigskip |
|
141 \item This re-formulation can be done, even in domains where |
|
142 we do not expect it. |
|
143 \end{itemize} |
|
144 |
|
145 \end{frame}} |
|
146 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
147 *} |
131 |
148 |
132 text_raw {* |
149 text_raw {* |
133 |
150 |
134 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
151 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
135 \mode<presentation>{ |
152 \mode<presentation>{ |
907 |
921 |
908 text_raw {* |
922 text_raw {* |
909 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
923 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
910 \mode<presentation>{ |
924 \mode<presentation>{ |
911 \begin{frame}[c] |
925 \begin{frame}[c] |
|
926 \frametitle{} |
|
927 \large |
|
928 \begin{center} |
|
929 \begin{tabular}{p{9cm}} |
|
930 My point:\bigskip\\ |
|
931 |
|
932 The theory about regular languages can be reformulated |
|
933 to be more suitable for theorem proving. |
|
934 \end{tabular} |
|
935 \end{center} |
|
936 \end{frame}} |
|
937 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
938 *} |
|
939 |
|
940 text_raw {* |
|
941 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
942 \mode<presentation>{ |
|
943 \begin{frame}[c] |
912 \frametitle{\LARGE The Myhill-Nerode Theorem} |
944 \frametitle{\LARGE The Myhill-Nerode Theorem} |
913 |
945 |
914 \begin{itemize} |
946 \begin{itemize} |
915 \item provides necessary and suf\!ficient conditions for a language |
947 \item provides necessary and suf\!ficient conditions for a language |
916 being regular (pumping lemma only necessary)\medskip |
948 being regular (pumping lemma only necessary)\medskip |
1421 \begin{frame}[c] |
1452 \begin{frame}[c] |
1422 \frametitle{\LARGE Conclusion} |
1453 \frametitle{\LARGE Conclusion} |
1423 |
1454 |
1424 \begin{itemize} |
1455 \begin{itemize} |
1425 \item We formalised the Myhill-Nerode theorem based on |
1456 \item We formalised the Myhill-Nerode theorem based on |
1426 regular expressions (DFA are difficult to deal with in a theorem prover).\smallskip |
1457 regular expressions only (DFAs are difficult to deal with in a theorem prover).\smallskip |
1427 |
1458 |
1428 \item Seems to be a common theme: algorithms need to be reformulated |
1459 \item Seems to be a common theme: algorithms need to be reformulated |
1429 to better suit formal treatment.\smallskip |
1460 to better suit formal treatment.\smallskip |
1430 |
1461 |
1431 \item The most interesting aspect is that we are able to |
1462 \item The most interesting aspect is that we are able to |
1432 implement the matcher directly inside the theorem prover |
1463 implement the matcher directly inside the theorem prover |
1433 (ongoing work).\smallskip |
1464 (ongoing work).\smallskip |
1434 |
1465 |
1435 \item Parsing is a vast field and seems to offer new results. |
1466 \item Parsing is a vast field which seem to offer new results. |
1436 \end{itemize} |
1467 \end{itemize} |
1437 |
1468 |
1438 \end{frame}} |
1469 \end{frame}} |
1439 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
1470 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
1440 *} |
1471 *} |
1448 \mbox{}\\[13mm] |
1479 \mbox{}\\[13mm] |
1449 \alert{\LARGE Thank you very much!}\\ |
1480 \alert{\LARGE Thank you very much!}\\ |
1450 \alert{\Large Questions?} |
1481 \alert{\Large Questions?} |
1451 \end{tabular}} |
1482 \end{tabular}} |
1452 |
1483 |
1453 %\begin{center} |
1484 \begin{center} |
1454 %\bf \underline{Short Bio:} |
1485 \bf \underline{Short Bio:} |
1455 %\end{center} |
1486 \end{center} |
1456 %\mbox{}\\[-17mm]\mbox{}\small |
1487 \mbox{}\\[-17mm]\mbox{}\small |
1457 %\begin{itemize} |
1488 \begin{itemize} |
1458 %\item PhD in Cambridge |
1489 \item PhD in Cambridge |
1459 %\item Emmy-Noether Fellowship in Munich |
1490 \item Emmy-Noether Research Fellowship at the TU Munich |
1460 %\item main results in nominal reasoning and nominal unification |
1491 \item talks at: CMU, Yale, Princeton, MIT,$\ldots$ |
1461 %\end{itemize} |
1492 \end{itemize} |
1462 |
1493 |
1463 \end{frame}} |
1494 \end{frame}} |
1464 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
1495 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
1465 *} |
1496 *} |
1466 |
1497 |
1467 |
1498 text_raw {* |
|
1499 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1500 \mode<presentation>{ |
|
1501 \begin{frame}[c] |
|
1502 \frametitle{Future Research} |
|
1503 |
|
1504 My existing strengths:\bigskip |
|
1505 |
|
1506 \begin{itemize} |
|
1507 \item Isabelle (implementation)\bigskip |
|
1508 \item background in logic, programming languages, formal methods |
|
1509 \end{itemize} |
|
1510 |
|
1511 \end{frame}} |
|
1512 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1513 *} |
|
1514 |
|
1515 text_raw {* |
|
1516 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1517 \mode<presentation>{ |
|
1518 \begin{frame}[c] |
|
1519 \frametitle{Future Research} |
|
1520 |
|
1521 I want to have a single logic framework in which I can |
|
1522 write programs and prove their correctness.\bigskip |
|
1523 |
|
1524 \begin{itemize} |
|
1525 \item extensions of HOL (IO, modules, advanced types) |
|
1526 \item high-level programming languages |
|
1527 \end{itemize} |
|
1528 |
|
1529 \end{frame}} |
|
1530 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1531 *} |
|
1532 |
|
1533 text_raw {* |
|
1534 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1535 \mode<presentation>{ |
|
1536 \begin{frame}[c] |
|
1537 \frametitle{Future Research} |
|
1538 |
|
1539 Compilers\bigskip |
|
1540 |
|
1541 \begin{itemize} |
|
1542 \item the high-level language needs to be compiled to correct machine |
|
1543 code |
|
1544 \item compiler verification, machine code verification |
|
1545 \end{itemize} |
|
1546 |
|
1547 \end{frame}} |
|
1548 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1549 *} |
|
1550 |
|
1551 text_raw {* |
|
1552 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1553 \mode<presentation>{ |
|
1554 \begin{frame}[c] |
|
1555 \frametitle{Future Research} |
|
1556 |
|
1557 Stronger type-systems\bigskip |
|
1558 |
|
1559 \begin{itemize} |
|
1560 \item ``correct by construction'' |
|
1561 \item GADTs, dependent types |
|
1562 \end{itemize} |
|
1563 |
|
1564 \end{frame}} |
|
1565 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1566 *} |
|
1567 |
|
1568 text_raw {* |
|
1569 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1570 \mode<presentation>{ |
|
1571 \begin{frame}[c] |
|
1572 \frametitle{Future Research} |
|
1573 |
|
1574 Proof automation\bigskip |
|
1575 |
|
1576 \begin{itemize} |
|
1577 \item external tools generate ``proof-certificates'' |
|
1578 \item certificates are imported into Isabelle |
|
1579 \item GPU based external provers |
|
1580 \end{itemize} |
|
1581 |
|
1582 \end{frame}} |
|
1583 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1584 *} |
|
1585 |
|
1586 text_raw {* |
|
1587 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1588 \mode<presentation>{ |
|
1589 \begin{frame}[c] |
|
1590 \frametitle{Future Research} |
|
1591 |
|
1592 Large-scale applications\bigskip |
|
1593 |
|
1594 \begin{itemize} |
|
1595 \item verification of Java-Script, Scala,$\ldots$ |
|
1596 \item interesting code (INTEL in Shanghai) |
|
1597 \end{itemize} |
|
1598 |
|
1599 \end{frame}} |
|
1600 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
1601 *} |
1468 |
1602 |
1469 |
1603 |
1470 (*<*) |
1604 (*<*) |
1471 end |
1605 end |
1472 (*>*) |
1606 (*>*) |