Appearance
🎉 your wikipedia🥳
"The Influence of Sea Power Upon History: 1660–1783 is a history of naval warfare published in 1890 by Alfred Thayer Mahan. It details the role of sea power during the seventeenth and eighteenth centuries, and discussed the various factors needed to support and achieve sea power, with emphasis on having the largest and most powerful fleet. Scholars considered it the single most influential book in naval strategy. Its policies were quickly adopted by most major navies, ultimately leading to the World War I naval arms race. It is also cited as one of the contributing factors of the United States becoming a great power. Overview Mahan formulated his concept of sea power while reading a history book in Lima, Peru. The book was published by Mahan while president of the US Naval War College, and was a culmination of his ideas regarding naval warfare. Mahan began the book with an examination of what factors led to a supremacy of the seas, especially how Great Britain was able to rise to its near dominance. He identified such features as geography, population, and government, and expanded the definition of sea power as comprising a strong navy and commercial fleet. Mahan also promoted the belief that any army would succumb to a strong naval blockade.Crowl, 1986 The book then goes on to describe a series of European and American wars and how naval power was used in each. Impact on naval thought Timeliness contributed no small part to the widespread acceptance and resultant influence of Mahan's views. Although his history was relatively thin (he relied on secondary sources), the vigorous style and clear theory won widespread acceptance by navalists across the world.St. John, 1971 Sea power supported the new colonialism that Europe and Japan were imposing on Africa and Asia. Given the very rapid technological changes underway in propulsion (from coal to oil, from reciprocating engines to steam turbines), ordnance (with better fire directors, and new high explosives) and armor (hardened steel), the emergence of new craft such as destroyers and submarines, and the development of radio, Mahan's emphasis on the capital ship and the command of the sea came at an opportune moment.Patrick J. Kelly, "Militarism in a Global Age: Naval Ambitions in Germany and the United States before World War I." German History (2013) 312 pp: 259-260. Mahan was initially introduced to the German navy by the strategist Ludwig Borckenhagen, in a series of influential papers. Subsequently, his name became a household word in the German navy, as Kaiser Wilhelm II ordered his officers to read Mahan, and Admiral Alfred von Tirpitz (1849–1930) used Mahan's reputation to build a powerful surface fleet. Mahan's ideas decisively shaped Japanese naval doctrine, especially in the fleet actions of World War II. Between 1890 and 1915, Mahan and British admiral Jacky Fisher faced the problem of how to dominate home waters and distant seas with naval forces not strong enough to do both. Mahan argued for a universal principle of concentration of powerful ships in home waters and minimized strength in distant seas, while Fisher reversed Mahan by utilizing technological change to propose submarines for defense of home waters and mobile battle cruisers for protection of distant imperial interests. The French at first adopted Mahan's theories. French naval doctrine in 1914 was dominated by Mahan's theory of sea power and therefore geared toward winning decisive battles and gaining mastery of the seas. But the course of World War I changed ideas about the place of the navy, as the refusal of the German fleet to engage in a decisive battle, the Dardanelles expedition of 1915, the development of submarine warfare, and the organization of convoys all showed the navy's new role in combined operations with the army.Crowl, 1986 The navy's part in securing victory was not fully understood by French public opinion in 1918, but a synthesis of old and new ideas arose from the lessons of the war, especially by admiral Raoul Castex (1878–1968), from 1927 to 1935, who synthesized in his five-volume Théories Stratégiques the classical and materialist schools of naval theory. He reversed Mahan's theory that command of the sea precedes maritime communications and foresaw the enlarged roles of aircraft and submarines in naval warfare. Castex enlarged strategic theory to include nonmilitary factors (policy, geography, coalitions, public opinion, and constraints) and internal factors (economy of force, offense and defense, communications, operational plans, morale, and command) to conceive a general strategy to attain final victory. Mahan's strategic theories continue to be influential into the 21st century, especially in the newly emerging naval powers India and China.David Scott, "India's 'grand strategy' for the Indian Ocean: Mahanian visions." Asia-Pacific Review (2006) 13#2 pp: 97-129.Toshi Yoshihara and James R. Holmes. "Can China Defend a “Core Interest” in the South China Sea?." The Washington Quarterly (2011) 34#2 pp: 45-59. Although Mahan's influence on foreign powers has been widely recognized, only in recent decades have scholars called attention to his role as significant in the growth of American overseas possessions, the rise of the new American navy, and the adoption of the strategic principles upon which it operated.Peter J. Hugill, "The American Challenge to British Hegemony, 1861–1947," Geographical Review (2009) 99#3 pp: 403-425.Zimmerman, 2002 Notes References * Apt, Benjamin. "Mahan's Forebears: The Debate over Maritime Strategy, 1868-1883." Naval War College Review (Summer 1997). Online. Naval War College. September 24, 2004 * Asada, Sadao. From Mahan to Pearl Harbor: The Imperial Japanese Navy and the United States (2006) * Crowl, Philip A. "Alfred Thayer Mahan: The Naval Historian" in Makers of Modern Strategy from Machiavelli to the Nuclear Age, ed. Peter Paret (Oxford: Clarendon Press, 1986) * Downs, Robert B. Books that Changed the World, New American Library: New York, NY, 1983. * St. John, Ronald B. "European Naval Expansion and Mahan, 1889-1906." Naval War College Review 1971 23(7): 74-83. . Argues that key Europeans were already set to expand their navies and that Mahan crystallized their ideas and generate broad support. * Shulman, Mark Russell. "The Influence of Mahan upon Sea Power." Reviews in American History 1991 19(4): 522-527. in Jstor * Shulman, Mark Russell. Navalism and the Emergence of American Sea Powers, 1882-1893 (1995) * Zimmermann, Warren. First Great Triumph: How Five Americans Made Their Country a World Power. (2002). 562 pp., chapter on Mahan External links * Mahan and The Influence of Sea Power Upon History * Project Gutenberg e-text * Internet Archive scan of first edition held by UCLA * 13th edition (1918) via HathiTrust Category:1890 non-fiction books Category:Books of naval history "
"In computer science, separation logic is an extension of Hoare logic, a way of reasoning about programs. It was developed by John C. Reynolds, Peter O'Hearn, Samin Ishtiaq and Hongseok Yang, drawing upon early work by Rod Burstall. The assertion language of separation logic is a special case of the logic of bunched implications (BI). A CACM review article by O'Hearn charts developments in the subject to early 2019. Overview Separation logic facilitates reasoning about: * programs that manipulate pointer data structures—including information hiding in the presence of pointers; * "transfer of ownership" (avoidance of semantic frame axioms); and * virtual separation (modular reasoning) between concurrent modules. Separation logic supports the developing field of research described by Peter O'Hearn and others as local reasoning, whereby specifications and proofs of a program component mention only the portion of memory used by the component, and not the entire global state of the system. Applications include automated program verification (where an algorithm checks the validity of another algorithm) and automated parallelization of software. Assertions: operators and semantics Separation logic assertions describe "states" consisting of a store and a heap, roughly corresponding to the state of local (or stack-allocated) variables and dynamically-allocated objects in common programming languages such as C and Java. A store s is a function mapping variables to values. A heap h is a partial function mapping memory addresses to values. Two heaps h and h' are disjoint (denoted h \,\bot\, h') if their domains do not overlap (i.e., for every memory address \ell, at least one of h(\ell) and h'(\ell) is undefined). The logic allows to prove judgements of the form s, h \models P, where s is a store, h is a heap, and P is an assertion over the given store and heap. Separation logic assertions (denoted as P, Q, R) contain the standard boolean connectives and, in addition, \mathbf{e}\mathbf{m}\mathbf{p}, e \mapsto e', P \ast Q, and P {-\\!\\!\ast}\, Q, where e and e' are expressions. * The constant \mathbf{e}\mathbf{m}\mathbf{p} asserts that the heap is empty, i.e., s, h \models \mathbf{e}\mathbf{m}\mathbf{p} when h is undefined for all addresses. * The binary operator \mapsto takes an address and a value and asserts that the heap is defined at exactly one location, mapping the given address to the given value. I.e., s, h \models e \mapsto e' when h([\\![e]\\!]_{s}) = [\\![e']\\!]_{s} (where [\\![e]\\!]_{s} denotes the value of expression e evaluated in store s) and h is otherwise undefined. * The binary operator \ast (pronounced star or separating conjunction) asserts that the heap can be split into two disjoint parts where its two arguments hold, respectively. I.e., s, h \models P \ast Q when there exist h_1, h_2 such that h_1 \,\bot\, h_2 and h = h_1 \cup h_2 and s, h_1 \models P and s, h_2 \models Q. * The binary operator -\\!\\!\ast (pronounced magic wand or separating implication) asserts that extending the heap with a disjoint part that satisfies its first argument results in a heap that satisfies its second argument. I.e,. s, h \models P -\\!\\!\ast\, Q when for every heap h' \,\bot\, h such that s, h' \models P, also s, h \cup h' \models Q holds. The operators \ast and -\\!\\!\ast share some properties with the classical conjunction and implication operators. They can be combined using an inference rule similar to modus ponens :\frac{s, h \models P \ast (P -\\!\\!\ast\, Q)}{s, h \models Q} and they form an adjunction, i.e., s, h \cup h' \models P \ast Q \Rightarrow R if and only if s, h \models P \Rightarrow Q -\\!\\!\ast\, R for h \,\bot\, h'; more precisely, the adjoint operators are \\_ \ast Q and Q -\\!\\!\ast\, \\_. Reasoning about programs: triples and proof rules In separation logic, Hoare triples have a slightly different meaning than in Hoare logic. The triple \\{P\\}\ C\ \\{Q\\} asserts that if the program C executes from an initial state satisfying the precondition P then the program will not go wrong (e.g., have undefined behaviour), and if it terminates, then the final state will satisfy the postcondition Q. In essence, during its execution, C may access only memory locations whose existence is asserted in the precondition or that have been allocated by C itself. In addition to the standard rules from Hoare logic, separation logic supports the following very important rule: \frac{ \\{P\\}\ C\ \\{Q\\} }{ \\{P \ast R\\}\ C\ \\{Q \ast R\\} }~\mathsf{mod}(C) \cap \mathsf{fv}(R) =\emptyset This is known as the frame rule (named after the frame problem) and enables local reasoning. It says that a program that executes safely in a small state (satisfying P), can also execute in any bigger state (satisfying P \ast R) and that its execution will not affect the additional part of the state (and so R will remain true in the postcondition). The side condition enforces this by specifying that none of the variables modified by C occur free in R, i.e. none of them are in the 'free variable' set \mathsf{fv} of R. Sharing Separation logic leads to simple proofs of pointer manipulation for data structures that exhibit regular sharing patterns which can be described simply using separating conjunctions; examples include singly and doubly linked lists and varieties of trees. Graphs and DAGs and other data structures with more general sharing are more difficult for both formal and informal proof. Separation logic has, nonetheless, been applied successfully to reasoning about programs with general sharing. In their POPL'01 paper, O'Hearn and Ishtiaq explained how the magic wand connective {-\\!\\!*} could be used to reason in the presence of sharing, at least in principle. For example, in the triple \\{(x \mapsto -) \ast ((x \mapsto 42) {-\\!\\!*} P)\\}\ [x] = 42\ \\{P\\} we obtain the weakest precondition for a statement that mutates the heap at location x , and this works for any postcondition, not only one that is laid out neatly using the separating conjunction. This idea was taken much further by Yang, who used {-\\!\\!*} to provide localized reasoning about mutations in the classic Schorr-Waite graph marking algorithm. Finally, one of the most recent works in this direction is that of Hobor and Villard, who employ not only {-\\!\\!*} but also a connective \cup \,\\!\\!\\!\\!\\!* which has variously been called overlapping conjunction or sepish, and which can be used to describe overlapping data structures: P \cup \\!\\!\\!\\!\\!* Q holds of a heap h when P and Q hold for subheaps h_P and h_Q whose union is h, but which possibly have a nonempty portion h_P \cap h_Q in common. Abstractly, P \cup \\!\\!\\!\\!\\!* Q can be seen to be a version of the fusion connective of relevance logic. Concurrent separation logic A Concurrent Separation Logic (CSL), a version of separation logic for concurrent programs, was originally proposed by Peter O'Hearn, using a proof rule : \frac{\\{P_1\\} C_1 \\{Q_1\\} \quad \\{P_2\\} C_2 \\{Q_2\\}}{\\{P_1 * P_2\\} C_1 \parallel C_2 \\{Q_1 * Q_2\\}} which allows independent reasoning about threads that access separate storage. O'Hearn's proof rules adapted an early approach of Tony Hoare to reasoning about concurrency, replacing the use of scoping constraints to ensure separation by reasoning in separation logic. In addition to extending Hoare's approach to apply in the presence of heap-allocated pointers, O'Hearn showed how reasoning in concurrent separation logic could track dynamic ownership transfer of heap portions between processes; examples in the paper include a pointer-transferring buffer, and a memory manager. A model for concurrent separation logic was first provided by Stephen Brookes in a companion paper to O'Hearn's. The soundness of the logic had been a difficult problem, and in fact a counterexample of John Reynolds had shown the unsoundness of an earlier, unpublished version of the logic; the issue raised by Reynolds's example is described briefly in O'Hearn's paper, and more thoroughly in Brookes's. At first it appeared that CSL was well suited to what Dijkstra had called loosely connected processes, (September 1965) but perhaps not to fine-grained concurrent algorithms with significant interference. However, gradually it was realized that the basic approach of CSL was considerably more powerful than first envisaged, if one employed non-standard models of the logical connectives and even the Hoare triples. An abstract version of separation logic was proposed that works for Hoare triples where the preconditions and postconditions are formulae interpreted over an arbitrary partial commutative monoid instead of a particular heap model. Later, by suitable choice of commutative monoid, it was surprisingly found that the proof rules of abstract versions of concurrent separation logic could be used to reason about interfering concurrent processes, for example by encoding the rely-guarantee technique which had been originally proposed to reason about interference; in this work the elements of the model were considered not resources, but rather "views" of the program state, and a non- standard interpretation of Hoare triples accompanies the non-standard reading of pre and postconditions. Finally, CSL-style principles have been used to compose reasoning about program histories instead of program states, in order to provide modular techniques for reasoning about fine-grained concurrent algorithms. Versions of CSL have been included in many interactive and semi- automatic (or "in-between") verification tools as described in the next section. A particularly significant verification effort is that of the μC/OS- II kernel mentioned there. But, although steps have been made, as of yet CSL- style reasoning has been included in comparatively few tools in the automatic program analysis category (and none mentioned in the next section). O'Hearn and Brookes are co-recipients of the 2016 Gödel Prize for their invention of Concurrent Separation Logic.https://www.eatcs.org/index.php/component/content/article/1-news/2280-2016-godel- prize- Verification and program analysis tools Tools for reasoning about programs fall on a spectrum from fully automatic program analysis tools, which do not require any user input, to interactive tools where the human is intimately involved in the proof process. Many such tools have been developed; the following list includes a few representatives in each category. *Automatic Program Analyses. These tools typically look for restricted classes of bugs (e.g., memory safety errors) or attempt to prove their absence, but fall short of proving full correctness. ** A current example is Facebook Infer, a static analysis tool for Java, C, and Objective-C based on separation logic and bi- abduction.Separation logic and bi-abduction, page, Infer project site. As of 2015 hundreds of bugs per month were being found by Infer and fixed by developers before being shipped to Facebook's mobile appsOpen-sourcing Facebook Infer: Identify bugs before you ship. C Calcagno, D DIstefano and P O'Hearn. 11 June 2015 ** Other examples include SpaceInvader (one of the first SL analyzers), Predator (which has won several verification competitions), MemCAD (which mixes shape and numerical properties) and SLAyer (from Microsoft Research, focussed on data structures found in device drivers) *Interactive Proof. Proofs have been done using embeddings of Separation Logic into interactive theorem provers such as the Coq proof assistant and HOL (proof assistant). In comparison to the program analysis work, these tools require more in the way of human effort but prove deeper properties, up to functional correctness. ** A proof of the FSCQ file systemUsing Crash Hoare Logic for Certifying the FSCQ File System, H Chen et al, SOSP'15 where the specification includes behaviour under crashes as well as normal operation. This work won the best paper award at the 2015 Symposium on Operating System Principles. ** Verification of a large fragment of the Rust type system and some of its standard libraries in the RustBelt project using the Iris framework for separation logic in The Coq proof assistant. ** Verification of an OpenSSL implementation of a cryptographic authentication algorithm,Verified correctness and security of OpenSSL HMAC. Lennart Beringer, Adam Petcher, Katherine Q. Ye, and Andrew W. Appel. In 24th USENIX Security Symposium, August 2015 utilizing verifiable C ** Verification of key modules of a commercial OS kernel, the μC/OS-II kernel, the first commercial pre-emptive kernel to have been verified.A Practical Verification Framework for Preemptive OS Kernels. Fengwei Xu, Ming Fu, Xinyu Feng, Xiaoran Zhang, Hui Zhang and Zhaohui Li:. In CAV 2016: 59-79 ** Other examples include the YnotThe Ynot Project homepage, Harvard University, USA. library for the Coq proof assistant; the Holfoot embedding of Smallfoot in HOL; Fine-grained Concurrent Separation Logic, and Bedrock (a Coq library for low-level programming). *In Between. Many tools require more user intervention than program analyses, in that they expect the user to input assertions such as pre/post specs for functions or loop invariants, but after this input is given they attempt to be fully or almost fully automatic; this mode of verification goes back to classic works in the 1970s such as J King's verifier, and the Stanford Pascal Verifier. This style of verifier has recently been called auto active verification, a term which intends to evoke the way of interacting with a verifier via an assert-check loop, analogous to the interaction between a programmer and a type-checker. ** The very first Separation Logic verifier, Smallfoot, was in this in-between category. It required the user to input pre/post specs, loop invariants, and resource invariants for locks. It introduced a method of symbolic execution, as well as an automatic way to infer frame axioms. Smallfoot included Concurrent Separation Logic. ** SmallfootRG is a verifier for a marriage of separation logic and the classic rely/guarantee method for concurrent programs. ** Heap Hop implements a separation logic for message passing, following the ideas in Singularity (operating system). ** Verifast is an advanced current tool in the in-between category. It has demonstrated proofs ranging from object-oriented patterns to highly concurrent algorithms and to systems programs. ** The Mezzo Programming Language and Asynchronous Liquid Separation Types include ideas related to CSL in the type system for a programming language. The idea to include separation in a type system has earlier examples in Alias Types and Syntactic Control of Interference. The distinction between interactive and in-between verifiers is not a sharp one. For example, Bedrock strives for a high degree of automation, in what it terms mostly-automatic verification, where Verifast sometimes requires annotations that resemble the tactics (little programs) used in interactive verifiers. References Category:2002 introductions Category:Program logic Category:Substructural logic Category:Logic in computer science "
"Mzwakhe Mbuli (born 1 August 1959) is a former Deacon at Apostolic Faith Mission Church in Naledi Soweto South Africa, known as "The People's Poet, Tall man, Mbulism, The Voice Of Reason", is a poet and Mbaqanga singer in South Africa. Father of Mzwakhe Mbuli Junior also known as Robot_Boii. Early life He was born in Sophiatown and shortly moved after his family was forced to move to Soweto when the government bulldozed his home town.Afropop! An Illustrated Guide to Contemporary African Music by Sean Barlow & Banning Eyre Career His works include a book of poems, Before Dawn (1989), and albums Change Is Pain (1986), Unbroken Spirit (1989), Resistance Is Defence (1992), and Africa (1993). His poems are mainly in English but draw on his native Zulu as well as traditional praise poetry and rap. His best-known poem is "Change Is Pain," a protest piece about oppression and revolution, which was initially banned until growing pressure forced South Africa to allow more freedom of speech.African Music Encyclopedia: Mzwakhe Mbuli His first performance group was called Khuvhangano. Throughout the 1980s, Mbuli was repeatedly detained by the authorities and denied a passport to travel while playing a leading role in the cultural activities of the United Democratic Front.South African Music His international career began in 1990 in Berlin, Germany when he shared the stage with Youssou N'dour, Miriam Makeba and Thomas Mapfumo. An imposing figure, standing well over tall, he performed at the funeral of Chris Hani, the assassinated head of the South African Communist Party, and at the presidential inauguration Nelson Mandela in 1994. In 1996 Mbuli was invited to London to co-host, with British poet and activist Benjamin Zephaniah, the Two Nations Concert at the Albert Hall to honor President Nelson Mandela on his visit to London . Later in the year, he returned to the UK to join Peter Gabriel, Youssour N'dour and other prominent African artists to record the fundraising Aids Album. In 1990, he was profiled in the documentary film Songololo: Voices of Change.Phil Johnson, "Songololo: the sound of freedom". The Globe and Mail, November 3, 1990. Mbuli was convicted in March 1999 for armed robbery and possession of a hand grenade – crimes he has consistently denied committing; he and his supporters have always insisted he was framed by the government for speaking out against corruption. He was held at the Leeuwkop Maximum Security Prison, until his release in November 2003. His most recent release is Mbulism. Discography Studio albums * Change Is Pain (1986) Shifty (Rounder - USA) * Unbroken Spirit (1988) Shifty Records * Resistance Is Defence (1992) Stern's Earthworks * Afrika (1993) CCP/EMI South Africa * Izigi (1994) CCP/EMI, South Africa * KwaZulu-Natal (1996) CCP / EMI South Africa * Umzwakhe Ubongu Ujehovah (1997) CCP/EMI South Africa * Mbulism (2004) CCP/EMI South Africa Singles *"Mandela" (with Zahara) (2013) Notes References * Afropop! An Illustrated Guide to Contemporary African Music by Sean Barlow & Banning Eyre. (Book Sales August 1995) , External links * Free Mzwakhe Mbuli * Mzwakhe Mbuli - plus sound clip Category:South African musicians Category:South African poets Category:Living people Category:1959 births "