text:
## Introduction

Hydrogen has high energy density (120–140 MJ kg−1) and is an environmentally friendly clean energy source that can be produced through water splitting1,2. The state-of-the-art water splitting catalyst for hydrogen production is composed of precious noble metals, and it has several drawbacks such as high-cost, limited reserves, and durability3. Currently, the Ir- and Ru-based compounds and Pt-group metals are considered the most efficient catalysts for the anodic oxygen evolution reaction (OER) and the cathodic hydrogen evolution reaction (HER), respectively3,4. Because each half-cell reaction requires a different pH environment for yielding the best performance, the adoption of such electrodes in integrated electrochemical water splitting has been limited in practical settings. To achieve efficient overall water splitting for hydrogen production, OER performance is also important because the OER process can become a kinetic bottleneck in HER owing to its complex and slow overall reaction involving concerted electron–proton shift steps3,4,5. Therefore, bifunctional catalysts that are earth-abundant and can exhibit concurrently excellent HER and OER performance are required urgently6,7.

ABO3 perovskite oxides (A: rare-earth or alkaline earth element, B: transition metal ion) have received significant attention as potential alternatives to precious metal-based catalysts (e.g., RuO2 and IrO2) owing to their strong catalytic activity, robust stability, and compositional flexibility8,9. Thus, considerable efforts have been devoted to understanding the mechanisms of OER and HER on perovskite oxides, and molecular orbital studies have suggested that cobalt-based oxides can be used as active catalysts in OER and HER10. Among the various ABO3 perovskite oxide catalysts, La1–xSrxCoO3–δ has been extensively studied for its strong catalytic activity. Liu et al. synthesized hierarchical mesoporous La1–xSrxCoO3–δ by electrospinning and showed improved OER activity and redox stability in a lithium oxygen battery11. Mefford et al. showed the manner in which OER performance can be improved by exploiting the oxygen vacancy defect in La1–xSrxCoO3–δ12. Grimaud et al. demonstrated that the O2 generated from the lattice oxygen of La1–xSrxCoO3–δ significantly influenced OER13.

Both theoretical and experimental investigations on transition metal dichalcogenides (TMDs) have revealed the great potential of TMDs as hydrogen generation catalysts owing to their high catalytic activity; robustness to CO, CO2, and O2; affordability; and scalability14,15. Of the various TMDs, molybdenum diselenide (MoSe2) is considered a promising HER catalyst because of its relatively superior electrochemical catalytic activity and chemical stability compared to other TMDs16,17. The Gibbs free energy of MoSe2 for hydrogen adsorption is close to zero, and its hydrogen coverage is greater than those of other TMDs17. However, owing to low conductivity of the intrinsic 2H-phase MoSe2, MoSe2-based composite structures, such as MoSe2/carbon cloth16, MoSe2/n+p-Si18, and MoSe2/graphene19, have been typically used to improve the electrochemical activity of intrinsic MoSe2. In addition, inducement of the semiconducting (2H) to metallic (1T) phase transition in TMDs has been considered to improve the performance of TMDs-based composite electrochemical catalysts because the metallic phase can improve their intrinsic electrocatalytic nature20. However, the phase transition process of TMDs is rather complex and time-consuming, and it requires an inert environment owing to the highly reactive materials involved, such as alkali metals20,21.

Apart from performance, the durability of water splitting catalysts is an important criterion from the commercial perspective. Chemical instability results in catalyst decomposition in the electrode during continued operation, which hinders long-term catalyst stability. Therefore, developing earth-abundant bifunctional catalysts that are based on non-precious metal elements and concurrently offer excellent HER and OER performance along with robust chemical stability is indispensable to ensure the industrial viability of electrochemical water splitting.

In present work, we devise a composite perovskite oxide–TMD heterostructure composed of MoSe2 (denoted MoSe2), La0.5Sr0.5CoO3–δ (denoted LSC only), and Ketjenblack carbon (denoted KB) as a bifunctional electrocatalyst for overall water electrolysis. The LSC, MoSe2, and KB heterostructure (denoted LSC&MoSe2) offers considerably better HER and OER performances (onset potential, Tafel slope) than LSC and KB heterostructure (denoted LSC) or MoSe2 alone. Interestingly, an in-situ local phase transition in MoSe2 (from 2H- to 1T-MoSe2) is observed during the formation of LSC&MoSe2, possibly because of spontaneous electron transfer from Co to Mo. This charge transfer is expected to enhance the intrinsic conductivity of MoSe2 and increase the amount of Co–O and Co–OH in LSC, which can enhance the water splitting catalytic activity. When LSC&MoSe2 || LSC&MoSe2 electrode was applied to overall water splitting, the initiation potential was observed at 1.52 V, and the proposed electrode exhibited excellent overall water electrolysis stability over 1000 h at a high current density of 100 mA cm−2, which is far superior performance compared to that of the Pt/C || IrO2 electrode.

## Results

### Morphological and structural properties of LSC&MoSe2

LSC&MoSe2 was prepared using the high-energy ball milling process with the optimum weight ratio of LSC:MoSe2:KB = 6:3:1 determined by the electrochemical analyses (Supplementary Figure 13; see Experimental Section for details). Morphological and structural analyses of the composite electrocatalyst were first performed by transmission electron microscopy (TEM) and scanning electron microscopy (SEM). Figure 1a, b show bright-field TEM image and high-angle annular dark-field (HAADF) image of LSC&MoSe2, along with energy-dispersive spectroscopy (EDS) elemental mapping, which clearly illustrates the presence of the associated elements (La, Sr, Co, O, Mo, Se, and C) in LSC&MoSe2. Further analysis on the morphology of LSC&MoSe2 heterostructure was carried out by SEM (Supplementary Figure 4). It can be seen that MoSe2 nanoflakes are randomly distributed and adsorbed onto the LSC surface without causing any noticeable aggregation, which can contribute to the increase of overall surface area of the composite structure. The SEM-EDS and elemental quantitative analysis for LSC&MoSe2 further revealed that each constituent atomic component in the composite structure was clearly observed with expected elemental ratio (Supplementary Figure 5). Figure 1c shows a high-resolution TEM (HR-TEM) image of LSC&MoSe2, which highlights the presence of MoSe2 (red). The inset in Fig. 1c shows the fast Fourier transform (FFT) pattern of MoSe2 viewed along the <001> zone axis, indicating highly crystalline structures corresponding to the (100) plane of 2H-MoSe2 with a lattice spacing of 0.28 nm. A HR-TEM image and the corresponding FFT pattern (inset, white section) of LSC along the <110> zone axis are shown in Fig. 1d, which highlight the crystalline structure of LSC corresponding to the (001) plane with a lattice spacing of 0.40 nm. The crystal structures of LSC, MoSe2, and LSC&MoSe2 were analyzed further by using X-ray diffraction (XRD), as shown in Fig. 1e. The peaks related to LSC and MoSe2 can be observed clearly in the XRD pattern of LSC&MoSe2, indicating the well-mixed state of LSC and MoSe2 without the presence of any additional phase, along with the amorphous state of KB.

We then performed Brunauer–Emmett–Teller (BET) analysis on LSC&MoSe2 and LSC to investigate the effect of MoSe2 on the surface area of the heterostructure. We also measured the BET surface area of MoSe2 and LSC only as 32.55 and 10.47 m2 g−1, respectively (Supplementary Figure 6). However, as shown in Fig. 1f, the addition of MoSe2 to LSC led to a notable increase in the total surface area of the composite structure, where the surface area of LSC&MoSe2 (142.09 m2 g−1) was more than thrice that of LSC (39.95 m2 g−1). Statistical analysis of the aforementioned samples is provided in Supplementary Figure 7. Increase in the BET surface area for LSC&MoSe2 can be attributed to the additional MoSe2 nanoflakes present that are adsorbed onto the LSC surface. Such a remarkable increase in surface area improves water splitting by increasing the total number of active electrocatalysis sites for both HER and OER22. The pore size of LSC&MoSe2 was investigated using the Barrett–Joyner–Halenda (BJH) method. The pore size distribution in Supplementary Figure 8 shows that mesoporous pores (2–50 nm) are present on the surface of the heterostructure. We analyzed the BJH pore size distributions of MoSe2 and LSC only to investigate the origin of mesoporous characteristics in LSC&MoSe2 (Supplementary Figure 9). In MoSe2, a sharp peak primarily centered at around 4 nm is observed, indicating the presence of mesoporous structure, whereas the broad peak centered at 55 nm appears for the LSC only. This result is consistent to the BET surface area analysis (Supplementary Figure 6), where N2 adsorption–desorption isotherms of MoSe2 shows type-IV characteristics with a hysteresis loop at relative pressures (P/P0) from 0.45 to 1.0 and LSC only shows much less conspicuous type-IV character than that of MoSe2 within similar P/P0 range, which suggests that the mesoporous characteristics observed from LSC&MoSe2 heterostructure mainly originated from the MoSe223. This mesoporous-pore-sized catalyst with large surface area is expected to enhance water splitting efficiency by facilitating effective mass transfer within the catalyst22.

### Electrochemical performance

At first, the hydrogen evolution reaction (HER) activities of the proposed catalyst were investigated for various catalyst configurations by examining rotating disk electrode (RDE) polarization curves obtained under N2-saturated 1 M KOH (Fig. 2a). The corresponding Tafel plots were derived from the obtained polarization curves (Fig. 2b). The potential was referenced to the reversible hydrogen electrode (RHE), as obtained from the calibration profile (Supplementary Figure 10). Pt/C exhibits excellent HER activity with an onset potential of 0.0 V vs. RHE and sharply increasing current density with a low Tafel slope value of 28 mV dec.–1, which indicates the Volmer–Tafel reaction is its primary HER pathway24. In contrast, MoSe2, known as an active HER catalyst under acidic media25, shows rather inferior HER activity with an onset potential of −0.42 V and Tafel slope of 237 mV dec.–1 in alkaline media. LSC presents moderate HER activity, as reported previously12 with an onset potential of −0.33 V and Tafel slope of 95 mV dec.–1, suggesting the Volmer–Heyrovsky reaction is the dominant HER pathway26. Interestingly, the addition of MoSe2 to LSC (LSC&MoSe2) facilitated the HER activities of LSC by positively shifting the onset potential to −0.20 V, a 0.13 V increase from that of LSC. This improvement is noteworthy in that the onset potential usually depends on the intrinsic property of the catalyst, and the combination of two low-performance materials, with onset potentials of −0.33 V (LSC) and −0.42 V (MoSe2), respectively, led to an enhanced overall onset potential of −0.20 V (LSC&MoSe2), demonstrating the synergistic effect of heterostructure formation. The Tafel slope of the composite structure improved to 34 mV dec.–1 from 95 mV dec.–1 (LSC) and 237 mV dec.–1 (MoSe2), respectively, approaching that of Pt/C (28 mV dec.–1), which suggests the Volmer–Tafel mechanism is the preferred pathway in the HER process of LSC&MoSe2. This result is comparable to that of the high-performance emerging HER catalysts under identical electrolyte conditions (1 M KOH), and it shows the lowest Tafel slope among the survey groups (Supplementary Table 1), which indicates faster increment in current with small overpotential and lower activation barrier toward rapid reaction rate.

In addition, we investigated the oxygen evolution reaction (OER) activities of the prepared catalysts under N2-saturated 1 M KOH. Figure 2c presents the OER polarization curves, and the corresponding Tafel slopes are derived, as shown in Fig. 2d. For the OER analysis, IrO2, known as the state-of-the-art catalyst for OER, was adopted as a reference catalyst27. IrO2 exhibits excellent OER performance with the onset potential of 1.51 V vs. RHE and Tafel slope of 75 mV dec.–1. In the case of LSC, active OER performance was observed with the onset potential of 1.54 V and Tafel slope of 90 mV dec.–1, but MoSe2 exhibited an inactive OER process along with an increase in overpotential. Notably, LSC&MoSe2 presented considerably improved OER activities compared to that of LSC with an onset potential of 1.52 V and sharply increasing current density with a low Tafel slope of 77 mV dec.–1. In the same electrolyte tested for HER (1 M KOH), the OER performance achieved in this work is comparable to that of recently reported high-performance catalysts (Supplementary Table 2). These results demonstrate that the formation of LSC&MoSe2 leads to simultaneous enhancements in both the HER and OER activities, suggesting that LSC&MoSe2 has potential as a highly efficient overall water splitting catalyst.

### Analysis of LSC&MoSe2 properties

To elucidate the origin of enhanced catalytic activity in LSC in the presence of additional MoSe2, various analyses, including spectroscopic, chemical, and electrical characterizations, were performed to investigate the potential interaction between the two substances. Figure 3a shows the fluorescence emission spectra (FL) of MoSe2, LSC only, and KB for various configurations. For the FL measurement, each sample (MoSe2, LSC&MoSe2, LSC only and MoSe2 heterostructure (denoted LSC/MoSe2), and MoSe2 and KB heterostructure (denoted MoSe2/KB) was prepared using the same concentration of MoSe2 (0.33 mg/mL). Detailed summary of abbreviations for each material system studied in this work is provided in Supplementary Table 3. Pristine 2H-phase MoSe2 is semiconducting in nature28, and LSC only and KB are highly conductive materials with metallic features29. A clear FL peak was observed for MoSe2 at 825 nm, whereas substantial FL quenching occurred in the MoSe2 composite containing LSC only and KB, that is, LSC&MoSe2, LSC/MoSe2, and MoSe2/KB. In addition, the FL peak was not present in the case of KB, and only a weak FL spectrum was observed in the case of LSC only, as shown in Supplementary Figure 11. However, the FL peak was observed in the case of LSC. These results suggest that charge transfer occurs readily among MoSe2, LSC only, and KB while that between LSC only and KB is limited. Moreover, optical absorption measurements were performed to further examine the effect of local phase transition in TMDs to metallic-phase in LSC&MoSe2. Figure 3b shows the UV-vis-NIR spectrum of MoSe2, which highlights the semiconducting feature of the 2H-phase with two exciton peaks at ~700 and 800 nm30. In LSC&MoSe2, such excitonic peaks disappeared, indicating that the phase transformed TMDs induced metal-like characteristics in LSC&MoSe231,32 (Fig. 3c).

Because intrinsic catalyst activity is closely related to catalyst surface properties (e.g., electronic structure, vacancy, defect, etc.), the surface characteristics of LSC&MoSe2 and LSC were investigated by X-ray photoelectron spectroscopy (XPS). We focused on the chemical state of Co 2p, as shown in Supplementary Figure 12, which has the dominant effect on the catalytic activity of LSC-based composite materials22. The Co 2p peak consists of two spin–orbit doublets, Co 2p3/2 and Co 2p1/2, with two satellites. The Co3+ and Co2+ of LSC are positioned at 779.6/794.2 eV and 781.5/797.0 eV, whereas those of LSC&MoSe2 are located at 780.6/795.2 eV and 782.5/798.0 eV, respectively, indicating a binding energy upshift of 1 eV in LSC&MoSe2 relative to LSC. This shift in the XPS peak was attributed to changes in the oxidation state of the LSC owing to the presence of additional MoSe2. The Co 2p of LSC&MoSe2 is to have higher oxidation states than the LSC owing to the electron transfer at the interface of LSC and MoSe2 while maintaining the overall electroneutrality of LSC&MoSe233,34. The high electronegativity of Mo may have altered the electronic structure (σ*-orbital occupancy) of Co by decreasing the electron density in Co35. The σ*-orbital occupancy (eg) of close to 1 of the perovskite oxides catalyst enhanced the binding of oxygen species at the B site, which contributed to improved OER performance36. The large ratio of high oxidation numbers in the Co species is related to the eg orbital filling of close to 1, which is a desirable feature for OER catalysts22,37. Therefore, the enhanced OER activity of LSC&MoSe2 can be attributed to its higher Co3+/Co2+ ratio than that of LSC (Supplementary Table 4). The chemical state of O 1s in the catalyst, too, can influence its OER performance38. The O 1s spectrum consists of lattice oxygen (denoted AO: lattice O2–), highly oxidative oxygen (denoted BO: O22–/O), surface-active oxygen (denoted CO: hydroxyl group (-OH)), and adsorbed water (denoted DO: H2O or CO32−), which are located at 529.9, 531.3, 532.6, and 533.5 eV, respectively, in the case of LSC&MoSe2 (Supplementary Figure 13). A high density of surface-active oxygen species on the catalyst surface, which is associated with oxygen vacancies and surface hydroxyl groups, is known to improve OER performance6,38, and the relative ratio between lattice and surface-active oxygen can be used as an indicator for evaluating OER performance39. As shown in Supplementary Table 5, the higher CO/AO ratio of LSC&MoSe2 than that of LSC, i.e., metals with high oxidation states which enhances the adsorption ability for oxides in the LSC&MoSe2 surface38, indicates larger surface coverage of hydroxide species in LSC&MoSe2, which can improve its intrinsic OER performance.

In addition, the surface adsorption capability of the catalyst was analyzed by conducting thermal gravimetric analysis (TGA) to elucidate the different electrocatalytic performances of LSC&MoSe2 and LSC. LSC&MoSe2 and LSC were exposed to wet-air conditions before the TGA measurement to facilitate the adsorption of water, H, and OH groups from the atmosphere. As shown in Fig. 3d, the relative weight loss (%) was larger in the case of LSC&MoSe2 than that in the case of LSC, implying that LSC&MoSe2 possesses a higher surface adsorption capability, which can improve its electrocatalytic performance6.

Ultraviolet photoelectron spectroscopy (UPS) analysis was conducted to investigate the charge transfer between LSC and LSC&MoSe2 to elucidate the improved catalytic performance of LSC&MoSe2. The increase in the work function of the catalyst increases proton concentration in the electronic double layer of the catalyst, which facilitates easy progress of the Volmer step (H++e=Had), which initiates the HER process, with the least overpotential40,41. Moreover, it increases the preexponential factor and the rate constant. This reduces the metal-hydrogen (M–H) bond strength, which helps improve the exchange current density42,43. Figure 3e shows the secondary electron cutoff energies of LSC and LSC&MoSe2, from which the work function values are derived. The addition of MoSe2 to LSC increased the work function value from 5.15 of LSC to 5.33 eV of LSC&MoSe2. The UPS result indicated that the incorporation of Mo with higher electronegativity into Co, the active site in perovskite oxide catalysts, led to an increase in the work function value of LSC&MoSe2, which improved its HER performance by increasing the exchange current density of LSC&MoSe2. This increase in the work function can induce a decrease in the adsorption bond strength between the catalyst and hydrogen, which brings the Gibbs free energy closer to the thermoneutral point of catalyst-H*, leading to improved catalytic activity of HER.

The improved catalytic performance of LSC&MoSe2 was examined by means of electrochemical impedance spectroscopy (EIS) analysis. Figure 3f shows the Nyquist plots of both the HER and OER of MoSe2, LSC, and LSC&MoSe2, from which the charge transfer resistance (Rct) of the catalyst between the electrode and electrolyte was obtained. The Rct of MoSe2 is 1500 Ω cm2 in both HER and OER, which is highest charge transfer resistance compared to the others. In contrast, the Rct of LSC&MoSe2 is 5.71 and 4.36 Ω cm2 for HER and OER, respectively, while that of LSC is 10.16 and 6.93 Ω cm2, respectively. This result suggests that rapid electron transport is feasible in LSC&MoSe2 owing to the additional MoSe2, which can improve conductivity of the catalyst. In brief, the improved electrocatalytic performance of LSC&MoSe2 in HER and OER can be attributed to various combinatorial effects of enhanced electrical and chemical properties in the catalyst that benefit the HER and OER aspects simultaneously.

### Synergetic effect for improved electrochemical performance

The morphology of the crystal structure of LSC&MoSe2 was investigated to further elucidate the dramatic improvement in the electrochemical performance of LSC&MoSe2 compared to other catalyst configurations such as MoSe2 and LSC. Figure 4a shows a HR-TEM image of LSC&MoSe2. Interestingly, after formation of the heterostructure of LSC with 2H phase MoSe2, the lattice structures of 1T-MoSe2 (metallic, octahedral) and 2H-MoSe2 (semiconducting, trigonal prismatic) were observed simultaneously. Each phase of the MoSe2 lattice structure can be observed clearly in the zoomed-in image presented in Fig. 4b, c along with the corresponding schematic diagram of the lattice structures. The 2H-MoSe2 region showed the typical hexagonal Mo–Se atomic arrangement with a 0.283 nm interlayer distance, corresponding to the (100) plane of MoSe2. In contrast, 1T-MoSe2 exhibited a distinctively different crystal structure that was attributed to electronic structure rearrangement44. The lattice spacings of Mo–Mo and Se–Se were 0.563 and 0.324 nm, respectively, confirming the presence of 1T-MoSe219,44. The coexistence of 1T- and 2H-phase of MoSe2 in LSC&MoSe2 was verified by XPS analysis shown in Supplementary Figure 14 (1T-phase: Mo 3d5/2 for 228.3 eV, Mo 3d3/2 for 231.4 eV, Se 3d5/2 for 53.7 eV, and Se 3d3/2 for 54.7 eV, 2H-phase: Mo 3d5/2 for 229.0 eV, Mo 3d3/2 for 232.6 eV, Se 3d5/2 for 54.3 eV, and Se 3d3/2 for 55.6 eV)19,45,46. The relative contents of 1T- and 2H-phase MoSe2 from the as-prepared LSC&MoSe2 are summarized in Supplementary Table 6. To verify whether the ball milling process has any effect on the phase transition of MoSe2, MoSe2/KB was synthesized under the same ball-mill process as LSC&MoSe2 and investigated through XPS and HR-TEM analysis. As shown in Supplementary Figs. 1516, no signature of phase transition is observed and only 2H-phase MoSe2 is present in ball-milled MoSe2/KB. These results suggest that the local phase transition in MoSe2 from the 2H-phase to the 1T-phase occurred in-situ during formation of the heterostructure between LSC and 2H-phase MoSe2. 1T-MoSe2 is typically synthesized via alkali metal treatment of 2H-MoSe2 in inert environment20,21. Surprisingly, in the present work, the presence of 1T-MoSe2 was observed locally in LSC&MoSe2. We hypothesize that this in-situ phase transition in MoSe2 is induced by electron transfer from Co to Mo47, as illustrated schematically in Fig. 4d. The electron transfer between Mo and Co is expected to improve the electrochemical catalytic activity of MoSe2 and LSC, as described in Fig. 4e. In the case of MoSe2, additional electrons alter the Mo 4d-orbital configuration from the occupied 4dz2 level to incompletely filled dxz, dyz, dyx orbital, which induces the phase transition44,48. As a result, the intrinsic conductivity of MoSe2 improves, which improves the electrochemical performance of the catalyst. This electron transfer is beneficial for the catalytic activity of LSC to achieve efficient water splitting. The Co in LSC becomes more electrophilic after the electron transfer, which alters the electronic structure of Co by upshifting the d-band center35. Such an up-shift of d-band center strengthens the adsorption capability of OH49. Therefore, the enhanced OH affinity and electrophilicity in Co, that is, increase in Co–O and Co–OH in LSC, can ultimately improve the overall water electrolysis performance. These charge transport phenomena bring synergistic effects to enhance both the HER and OER performance from the heterogenous composite structure of LSC&MoSe2 in addition to the performance improvement factors mentioned in Analysis of LSC&MoSe2 properties section.

### Theoretical elucidation of charge transfer in LSC&MoSe2

To theoretically demonstrate the charge transfer phenomenon in LSC&MoSe2 heterostructure, we performed the density functional theory (DFT) calculations (see calculation details in the Experimental section). For this purpose, we first examined the relative stability of two plausible terminations of LSC (001) surface, corresponding to CoO2-termination (denoted CoO2-t.) and (La,Sr)O-termination (denoted (La,Sr)O-t.), by surface energy (γ) calculations (see Supplementary Fig. 17 and Surface energy calculations for details in the Experimental section). As a result, (La,Sr)O-t. was predicted to be predominantly exposed on the LSC nanoparticle surface due to its lower surface energy (i.e., γ = 0.58 J/m2 for (La,Sr)O-t. and γ = 0.71 J/m2 for CoO2-t., respectively). Accordingly, we built the LSC&2H-MoSe2 heterostructure based on this termination (Fig. 5a). By the Bader charge analysis50, it was revealed that the charge transfer occurred from LSC into MoSe2 with an amount of 0.772 e, whose direction was in accordance with our previous expectation.

To better understand these electron movements, the projected density of states (PDOS) on each d-orbital of Co and Mo in LSC&2H-MoSe2 was further investigated (Fig. 5b). The asymmetric configuration of spin-up and spin-down DOS for LSC indicated the ferromagnetic nature, whereas the symmetric configuration for MoSe2 represented its non-magnetic character51,52. Driven by the electron transfer across the interface, the d-band center (εd) of Co in LSC shifted upward about 0.1 eV with respect to the Fermi level when coupled with 2H-MoSe2, indicating that LSC became more electrophilic. In a previous study, the enhanced electrophilicity of LSC was reported to strengthen the OH affinity, which has a beneficial effect to improve the OER catalytic performance35. Meanwhile, the εd of Mo in 2H-MoSe2 was significantly downshifted by ~0.9 eV with respect to the Fermi level when combined with LSC, implying that additional electrons transferred into 2H-MoSe2 side. These extra d-electrons are expected to promote the 2H- to 1T-phase transition by destabilizing the 2H-MoSe2 phase, as similarly observed in the MoS2 system by Gao et al.’s work53. To further clarify this, we compared the relative stability for both phases of MoSe2 in the presence or absence of LSC (Fig. 5c, d and Supplementary Figure 18). The endothermicity of 1T-MoSe2 (relative to its 2H-phase) clearly decreased from 0.65 to 0.21 eV per MoSe2 unit when LSC was combined, indicating that the phase transition from 2H- to 1T-phase could occur more easily. Further, the local DOS of MoSe2 in the LSC&MoSe2 heterostructure showed that the intrinsic conductivity can be significantly enhanced by closing the energy gap due to the transition from semiconducting 2H- to metallic 1T-phase, which can improve the HER catalytic performance (Supplementary Figure 19)54. These results theoretically elucidate the beneficial effects of charge transfer phenomenon in LSC&MoSe2 for both HER and OER performance.

### Overall water splitting of LSC&MoSe2 || LSC&MoSe2

An overall water splitting test was conducted to evaluate the performance and stability of the developed LSC&MoSe2 electrocatalyst. By adopting the prepared LSC&MoSe2 catalyst, we evaluated the overall water splitting performance in deaerated alkaline media containing N2-saturated 1 M KOH. The water splitting test was conducted with the three-electrode configuration by using an Ag/AgCl reference electrode to separate the overall cell reaction into the cathodic and anodic reactions of HER and OER, respectively. The electrochemical overall water electrolysis actively generated hydrogen (cathode) and oxygen (anode) gases, as shown in Fig. 6a. Figure 6b shows the HER and OER polarization curves, denoted Ecathode and Eanode, respectively, measured during the water electrolysis reaction, and the obtained cell potentials (Ecell= EanodeEcathode) of Pt/C || IrO2 (Pt/C for cathode and IrO2 for anode) and LSC&MoSe2 || LSC&MoSe2 (LSC&MoSe2 for both cathode and anode). Also, the overall water electrolysis performance of bare Ni foam is investigated and compared to the published works (Supplementary Figure 20). The reference state-of-the-art catalyst pair, Pt/C || IrO2, performed well in both HER and OER, as observed previously in the half-cell-configured RDE polarization profiles. In the case of Pt/C || IrO2, overall water splitting was observed from near 1.38 V. LSC&MoSe2 || LSC&MoSe2 exhibited slightly lower HER performance than Pt/C, but the OER performance was higher than that of IrO2. Although overall water splitting was observed at a slightly higher value of 1.52 V, current density increased sharply as the potential increases. The determination of the onset potential values for each catalyst can be seen in Supplementary Figure 21. Notably, LSC&MoSe2 || LSC&MoSe2 outperformed Pt/C || IrO2 after 2.16 V owing to its concurrently effective HER and OER kinetics. To investigate the electrochemical stability and durability of the LSC&MoSe2 catalyst, we measured its chronopotentiometric profiles at a current density of 100 mA cm–2, as shown in Fig. 6c. For Pt/C || IrO2, gradual degradation was initiated from 16 h and drastic degradation occurred after 60 h, leading to cell failure. In contrast, LSC&MoSe2 || LSC&MoSe2 exhibited remarkably stable operation over 1000 h with negligible fluctuation in performance, demonstrating its exceptionally high electrochemical durability in HER and OER, even at a high current density of 100 mA cm–2. Furthermore, the energy efficiency of overall water electrolysis at the current density of 100 mA cm−2 was calculated to be 63.9% as shown in Supplementary Note 1. Considering the energy efficiency for conventional alkaline electrolysis is <70% with the use of noble metal-based electrode55, the proposed LSC&MoSe2 catalyst can be considered as highly efficient for the water electrolysis. Supplementary Figure 22 shows SEM images of the LSC&MoSe2 electrode after 1000 h of the overall water electrolysis test; clogging or electrochemical/physical damage was not observed on the catalyst after the test. The chemical state of LSC&MoSe2 after the stability test was further examined via XPS analysis. As shown from Supplementary Figure 23 and Tables 7 and 8, the ratio of Co3+/Co2+ and surface-active oxygen/lattice oxygen showed almost negligible changes even after the 1000 h of overall water splitting measurement, indicating the excellent stability of the proposed LSC&MoSe2 as the electrocatalyst. Progress of the overall water splitting test with H2 and O2 bubble generation from the cathode and anode, respectively, is shown in Supplementary Movie 1. The overall water electrolysis stability achieved in this work was compared with that of the representative overall water splitting catalysts reported to date, as shown in Fig. 6d and summarized in Supplementary Table 9. Despite the harsh test environment (highest current density) in the present study, the developed catalyst exhibited overwhelmingly high overall water electrolysis stability compared to that achieved in other works.

## Discussion

We demonstrated that a composite of perovskite oxides and MoSe2 exhibits excellent electrocatalytic performance and stability in overall water electrolysis. Formation of LSC&MoSe2 led to several synergetic effects, including increased specific surface area for both the HER and OER, enhanced surface adsorption capability, favorable kinetics for the Volmer–Tafel pathway, and decreased charge transfer resistance, which contributed to its improved electrochemical catalytic performance. Interestingly, electron transfer between Co and Mo induced a local phase transition in MoSe2 and increased the amounts of Co–O and Co–OH in La0.5Sr0.5CoO3–δ, leading to improved intrinsic and extrinsic catalytic activities of LSC&MoSe2. In the overall water splitting electrolysis test, LSC&MoSe2 || LSC&MoSe2 showed comparable operating voltages to that of Pt/C || IrO2 along with remarkable long-term stability over 1000 h. The results obtained in the present study suggest that perovskite oxides and TMDs based heterostructures can be promising bifunctional water splitting catalysts and can serve as potential alternatives to precious metal-based electrochemical catalysts.

## Methods

### Synthesis of MoSe2

For the preparation of MoSe2 flakes, 500 mg of bulk MoSe2 powder (~325 mesh powder, purity >99.9%, Alfa Aesar) was dispersed in isopropyl alcohol (IPA) (350 mL) and deionized water (150 mL), and subsequently exfoliated via tip-sonication (Sonic & materials, VC 505) during 5 h. The resulting suspension was centrifuged and the supernatant was collected, which was dried in vacuum oven at 100 ℃ for 12 h.

### Synthesis of LSC

La0.5Sr0.5CoO3-δ (LSC) perovskite oxides was synthesized by typical sol-gel process. Stoichiometric amount of metal nitrate precursors and citric acid were dissolved in deionized water to form an aqueous solution. After the nitrate precursors were completely dissolved, an appropriate amount of polyethylene glycol (Mw ~400) was added. All chemical reagents were purchased from Sigma-Aldrich and used as-received without further purification. After a viscous resin was formed, the solution was heated at 300 oC. Then, the resulting powder was pre-calcined at 600 oC for 4 h and calcined at 950 oC for 4 h.

### Synthesis of catalysts

To find the optimum ratio for LSC&MoSe2 catalyst, LSC and MoSe2 were high-energy milled with 10 wt.% of Ketjen black EC-600JD (KB) by a planetary ball mill system (PM-200, Retsch, Germany). For the milling process, the following weight ratios were examined with LSC:MoSe2:KB of 9:0:1, 8:1:1, 7:2:1, 6:3:1, 5:4:1, and 0:9:1. Total weight of catalyst was maintained as 500 mg and each catalyst was dispersed in ethanol and ball-milled using Zr-balls at 400 rpm for 2 h. Thus, for synthesis of LSC:MoSe2:KB = 6:3:1, 300 mg of LSC, 150 mg of MoSe2, and 50 mg of KB was used. In case of LSC/KB, MoSe2/KB, and LSC/MoSe2 synthesis, 450 mg of LSC/50 mg of KB, 450 mg of MoSe2/50 mg of KB, and 300 mg of LSC/150 mg of MoSe2 was used, respectively. Then, the powder was collected by drying the solvent in a 70 oC of oven for further analyses.

### Material characterizations

Structural and morphological characterizations were conducted via HR-TEM (JEM-2100F, JEOL) with a probe forming (STEM) Cs (spherical aberration) corrector at 200 kV and XRD (D8 Advance, Bruker) at a scan rate of 1o min−1, respectively. Fluorescence emission and UV-vis NIR spectra were obtained by Fluorometer (Cary Eclipse, Varian) and UV-vis NIR spectrophotometer (Cary 5000, Agilent). BET surface area and pore size of LSC&MoSe2 and LSC were investigated via Physisorption Analyzer (ASAP 2420, Micromeritics Instruments) with N2 desorption/adsorption. Surface adsorption capability was analyzed by TGA (Q500, TA). LSC&MoSe2 and LSC used in TGA analysis were exposed to wet-air for 24 h to absorb the moisture. UPS and XPS measurements were conducted using He I (21.2 eV) discharge lamp and monochromatic Al-Kα radiation source, respectively, (ESCALAB 250Xi, Thermo Fisher Scientific) under ultra-high vacuum condition (<10−10 Torr). SEM images of electrodes before and after overall water electrolysis were obtained via Nano 230 FE-SEM (Nova Nano SEM, FEI).

### Half-cell analysis

Half-cell measurements were conducted in typical three-electrode configuration using a Pt wire and Ag/AgCl electrode (saturated KCl filled) as the counter electrode and reference electrode, respectively. The rotating disk electrode (RDE) tests were carried out by using catalysts of 20 wt% Pt/C (Alfa Aesar), IrO2 (Alfa Aesar), LSC, MoSe2, and LSC&MoSe2 on RRDE-3A (ALS). Each catalyst was prepared in the form of an ink by dispersing 10 mg of the catalyst in 1 mL of a binder solution (45:45:10 = ethanol:isopropyl alcohol:5 wt% Nafion solution (Sigma-Aldrich), volumetric ratio) followed by a bath sonication process. Then, HER and OER profiles were investigated in N2-saturated 1 M KOH aqueous solution at a scan rate of 10 mV s−1 by drop-coating 5 µL of each catalyst ink onto glassy carbon disk electrode, where the area is 0.13 cm2. A calibration in reversible hydrogen electrode (RHE) was experimentally determined at a scan rate of 1 mV s−1 in H2-saturated 1 M KOH, where platinum wire was used as the working and counter electrode and Ag/AgCl as the reference electrode. All half-cell profiles were iR compensated by measuring the resistance of solution (1 M KOH). All electrochemical tests were carried out using Biologic VMP3.

### Overall water splitting test

The overall water electrolysis tests were proceeded in three-electrode configuration using Ag/AgCl reference electrode. The cathode and anode were prepared by electro-spraying the prepared catalyst ink onto a Ni mesh current collector with a catalyst loading density of 1 mg cm−2. The measurements were proceeded in deaerated 1 M KOH aqueous solution. The current density was normalized with the geometric area of the catalyst. All electrochemical tests were conducted using Biologic VMP3.

### Calculation details

Spin-polarized DFT calculations were carried out using the Vienna ab initio simulation package (VASP)56 within the projector-augmented wave (PAW) method57. The electron exchange-correlation energy was treated by the generalized gradient approximation (GGA) with Perdew-Burke-Ernzerhof (PBE) functional58. The DFT +U method within Dudarev’s approach59 was also adopted with U = 4.3 eV and J = 1.0 eV for Co-3d and U = 4.0 eV for Mo-4d, respectively. The energy cutoff for the plane-wave basis set was set as 400 eV and PAW data sets were used with following valence electronic states: 5 s2, 5p6, 5d1, 6 s2 for La; 4 s2, 4p6, 5 s2 for Sr; 3d8, 4d1 for Co; 2 s2, 2p4 for O;4 s2, 4p6, 4d6 for Mo; and 4 s2, 4p4 for Se, respectively. Geometry optimizations were performed using conjugated gradient (CG) method until the net force on each atom reached <0.02 eV Å−1 and the total energy was changed within 10−6 eV per atom. Dipole slab corrections were also applied to all slab model calculations. The Monkhorst-Pack scheme of k-point grid60 was set to Γ points for geometry optimization, and 3 × 2 × 1 k-points in the Brillouin zone for DOS analysis, respectively. Bader analysis50 was used to calculate the atomic charges.

### Model systems for calculation

To construct the LSC&MoSe2 heterostructure, each slab model for LSC surface and MoSe2 layer was separately modeled in advance. First, the unit cell structure of LaCoO3 (LCO) was fully relaxed by optimizing both atomic positions and lattice parameters, which were well matched with experimentally reported values61. Subsequently, the LCO bulk structure was cleaved along the (001) plane with two plausible terminations (i.e., CoO2 termination and LaO termination). Note that we considered symmetric slab models of LCO (001), which consisted of 5 atomic layers, to remove the fictious dipole moment in the slab. The bottommost two layers were fixed to their bulk positions. Next, a $$2\sqrt 2 \times 3\sqrt 2 \times 1$$ supercell structure was created, and subsequently half of La atoms were replaced into Sr atoms to attain the stoichiometry of La0.5Sr0.5CoO3 system (i.e., a = 10.91 Å, b = 16.37 Å, c = 25.00 Å, 156 atoms). For MoSe2 slab model, a 2 × 5 × 1 supercell structure of orthorhombic unit cell for 2H-MoSe2 was created (i.e., a = 11.49 Å, b = 16.78 Å, c = 25.00 Å, 60 atoms). Finally, the LSC&MoSe2 heterostructure was built by combining the LSC and MoSe2 slabs with minimized lattice mismatch <3% (i.e., a = 11.20 Å, b = 16.57 Å, c = 35.00 Å, 216 atoms). The vacuum was sufficiently applied to avoid the self-interaction in z-direction.

### Surface energy calculations

To evaluate the relative stability of complementary terminations in the LSC (001) surface, we calculated the surface energy (γ) by the sum of cleavage energy (γu) and relaxation energy (γr), which was previously reported by Heifets et al62.,

$$\gamma = \gamma _u + \gamma _r$$
(1)

The cleavage energy can be obtained as follows,

$$\gamma _u = (E_{\mathrm{slab}}^u({\mathrm{CoO}}_{\mathrm{2}} - {\mathrm{t}}.) + E_{\mathrm{slab}}^u(({\mathrm{La,Sr}}){\mathrm{O}} - {\mathrm{t}}.) - NE_{\mathrm{bulk}})/4A$$
(2)

where $$E_{\mathrm{slab}}^u({\mathrm{CoO}}_{\mathrm{2}} - {\mathrm{t}}.)$$ and $$E_{\mathrm{slab}}^u(({\mathrm{La,Sr}}){\mathrm{O}} - {\mathrm{t}}.)$$ are unrelaxed CoO2- and (La,Sr)O-terminated slab energies, Ebulk is the total energy of bulk unit cell, N is the formula unit of slab models, and A is the surface area. The factor of four in the denominator arises from the four cleaved surfaces of two terminations. Next, we can calculate the relaxation energies for each CoO2-t. and (La,Sr)O-t. as follows,

$$\gamma _r = (E_{\mathrm{slab}}^r({\mathrm{X}}) - E_{\mathrm{slab}}^u({\mathrm{X}}))/2A ({\mathrm{X}} = {\mathrm{CoO}}_{\mathrm{2}} - {\mathrm{t}}. {\mathrm{or}} ({\mathrm{La,Sr}}){\mathrm{O}} - {\mathrm{t}}.)$$
(3)

where $$E_{\mathrm{slab}}^r({\mathrm{X}})$$ is a slab energy after relaxation.


text:
# AVS Antispam

## A way to uninstall AVS Antispam from your PC

This page contains thorough information on how to remove AVS Antispam for Windows. It was created for Windows by Online Media Technologies Ltd.. Additional info about Online Media Technologies Ltd. can be found here. Click on to get more facts about AVS Antispam on Online Media Technologies Ltd.'s website. The application is often placed in the C:\Program Files\AVS4YOU\AVSAntispam directory (same installation drive as Windows). C:\Program Files\AVS4YOU\AVSAntispam\unins000.exe is the full command line if you want to uninstall AVS Antispam. AVS Antispam's primary file takes around 4.71 MB (4937576 bytes) and is named AVSAntispam.exe.

The following executables are contained in AVS Antispam. They take 5.81 MB (6092847 bytes) on disk.

• AVSAntispam.exe (4.71 MB)
• RegisterLSP.exe (437.35 KB)
• unins000.exe (690.84 KB)
Some files and registry entries are frequently left behind when you uninstall AVS Antispam.

Folders remaining:
• C:\Program Files\AVS4YOU\AVSAntispam

The files below remain on your disk by AVS Antispam when you uninstall it:
• C:\Program Files\AVS4YOU\AVSAntispam\AVSAntispam.chm
• C:\Program Files\AVS4YOU\AVSAntispam\AVSAntispam.exe
• C:\Program Files\AVS4YOU\AVSAntispam\AVSAntispam.sil
• C:\Program Files\AVS4YOU\AVSAntispam\AVSOutlookExpressCore.dll
• C:\Program Files\AVS4YOU\AVSAntispam\AVSOutlookExpressHook.dll
• C:\Program Files\AVS4YOU\AVSAntispam\AVSOutlookExpressInterceptor.dll
• C:\Program Files\AVS4YOU\AVSAntispam\AVSOutlookExpressStore.dll
• C:\Program Files\AVS4YOU\AVSAntispam\AVSRegisterLSP.UAC.dll
• C:\Program Files\AVS4YOU\AVSAntispam\RegisterLSP.exe
• C:\Program Files\AVS4YOU\AVSAntispam\SpOrder.dll
• C:\Program Files\AVS4YOU\AVSAntispam\unins000.dat
• C:\Program Files\AVS4YOU\AVSAntispam\unins000.exe

Registry that is not uninstalled:
• HKEY_CURRENT_USER\Software\AVS4YOU\Antispam
• HKEY_LOCAL_MACHINE\Software\AVS4YOU\Antispam
• HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\AVS Antispam_is1

## How to erase AVS Antispam using Advanced Uninstaller PRO

AVS Antispam is an application offered by Online Media Technologies Ltd.. Sometimes, people choose to erase this application. Sometimes this is easier said than done because doing this manually takes some advanced knowledge related to removing Windows applications by hand. One of the best QUICK manner to erase AVS Antispam is to use Advanced Uninstaller PRO. Here is how to do this:

1. If you don't have Advanced Uninstaller PRO on your Windows system, add it. This is good because Advanced Uninstaller PRO is a very potent uninstaller and general tool to maximize the performance of your Windows system.

2. Start Advanced Uninstaller PRO. It's recommended to take your time to get familiar with Advanced Uninstaller PRO's design and number of features available. Advanced Uninstaller PRO is a very good system optimizer.

3. Press the General Tools button

4. Press the Uninstall Programs feature

5. A list of the applications installed on your PC will be shown to you

6. Navigate the list of applications until you find AVS Antispam or simply activate the Search field and type in "AVS Antispam". The AVS Antispam program will be found very quickly. Notice that after you click AVS Antispam in the list of programs, the following data regarding the application is available to you:

• Safety rating (in the lower left corner). This explains the opinion other users have regarding AVS Antispam, ranging from "Highly recommended" to "Very dangerous".
• Opinions by other users - Press the Read reviews button.
• Technical information regarding the program you wish to remove, by pressing the Properties button.
For instance you can see that for AVS Antispam:

• The web site of the application is: http://www.avs4you.com/index.aspx
• The uninstall string is: C:\Program Files\AVS4YOU\AVSAntispam\unins000.exe
7. Click the Uninstall button. A confirmation window will show up. Confirm the removal by clicking the Uninstall button. Advanced Uninstaller PRO will then uninstall AVS Antispam.

8. After uninstalling AVS Antispam, Advanced Uninstaller PRO will ask you to run a cleanup. Click Next to proceed with the cleanup. All the items that belong AVS Antispam which have been left behind will be detected and you will be asked if you want to delete them. By removing AVS Antispam using Advanced Uninstaller PRO, you are assured that no Windows registry entries, files or folders are left behind on your disk.

Your Windows PC will remain clean, speedy and able to serve you properly.

format: plain


text:
11,579
pages

Second-order arithmetic (also known as Z2 or as $$\Pi_\infty^1-CA$$) is a first-order theory[note 1] of arithmetic allowing quantification over the natural numbers as well as sets of natural numbers.[1]

## Language

The language of second-order arithmetic, L2[1], allows us to discuss two types of objects, namely numbers themselves, or sets of numbers. It is an extension of propositional calculus with the following:

• Infinitely many numeric variables $$x_0$$, $$x_1$$, ... and infinitely many set variables $$X_0$$, $$X_1$$, ...
• Constant symbol $$0$$, called zero
• Three binary relation symbols $$=,<,\in$$, called equality, comparison and set membership. The first two are relations between numbers, and the last one is a relation between a number and a set
• Unary function symbol $$S(x)$$, called successor, mapping numbers to numbers
• Two binary function symbols, $$+(a,b),\cdot(a,b)$$, called addition and multiplication respectively, which map pairs of numbers to a single number. They are often denoted by $$a+b,a\cdot b$$.

The language of second-order arithmetic is expressive enough to allow us to talk about not only natural numbers and subsets of these, but also about integers, rational numbers and real numbers, and even countable sets (i.e. sequences) of real numbers.

## Axioms

The theory of second-order arithmetic consists of the axioms of Peano arithmetic, plus:

• $$\forall X (0 \in X \wedge \forall x (x \in X \Rightarrow Sx \in X) \Rightarrow \forall x : x \in X)$$, the second-order induction axiom. It states that if a set contains 0 and contains the successor of each of its own members, then that set contains all natural numbers.
• For every formula $$\phi$$ where $$X$$ is not a free variable: $$\exists X \forall x (x \in X \Leftrightarrow \phi(x))$$, the axiom schema of comprehension. It tells us that every predicate over the natural numbers defines a subset of the natural numbers (namely the set of these number which satisfy $$\phi$$).

## Subsystems

Z2 is an extremely strong formal theory, and in many cases we do not require all of its strength to prove a desired result. We naturally ask what happens when we weaken Z2. Harvey Friedman started a project, now known as reverse mathematics, that addresses questions about what axioms are necessary to prove a given theorem, and what axioms are not strong enough to prove it.

Reverse mathematics focuses on subsystems of second-order arithmetic, which have been extensively studied to measure strength of their theorems. The "Big Five" are RCA0, WKL0, ACA0, ATR0, and Π11-CA0. Each member of the Big Five is a proper extension of the preceding ones. All theorems seen in professional mathematics about the integers, real numbers, and complex numbers, with the exception of a small minority, can be assigned a "strength" based on the weakest member of the Big Five required to prove them. Many of them can be proven in just RCA0.

These subsystems still use the language of second-order arithmetic, but not necessarily its axioms. Although some of these theories may be intuitively weaker than Peano arithmetic, unlike PA, they are all able to make statements about the real numbers.

### RCA0

RCA0, for "recursive comprehension axiom," is the weakest of the Big Five. It consists of:

This is the so-called base system, and all other subsystems have RCA0's axioms. RCA0 is a weak system, but it can prove many basic properties of natural numbers and real numbers, including the uniqueness of a limit of a sequence and the intermediate value theorem). RCA0 can prove most "everyday" properties of natural numbers and real numbers.

RCA0 only has enough strength to prove the existence of objects which are recursive. For example, the set existence axioms of this theory lack the strength to prove the existence of uncomputable functions.

RCA0 has a proof-theoretic ordinal of $$\omega^\omega$$.

### WKL0

WKL0 stands for "weak König's lemma." We form WKL0 by extending RCA0 with a weak form of König's lemma:

Let $$2^{<\omega}$$ be the tree of all finite binary sequences, and let $$T$$ be one of its infinite subtrees. Then $$T$$ has an infinite branch.

RCA0 cannot prove this lemma — recalling that RCA0 cannot prove the existence of uncomputable sets, we can create an infinite computable tree $$T$$ which has no computable infinite branches. Consequently, WKL0 is a proper extension of RCA0.

It can be shown that many natural statements are equivalent (over base theory RCA0) to WKL0, e.g. Heine-Borel theorem for closed intervals, or Riemann-integrability of continuous functions. One of the most important equivalent statements is $$\Sigma^0_1$$ separation: given two $$\Sigma^0_1$$ sentences with a free variable $$n$$, never both true, there is a set which contains all $$n$$ which make first formula true, and none which make second one true.

WKL0 has a proof-theoretic ordinal of $$\omega^\omega$$ and has the same consistency strength than RCA0, i.e. they are equiconsistent.

### ACA0

Arithmetical comprehension axiom. We get this by adjoining to RCA0 axiom schema of comprehension for all arithmetical formulas (ones contained in $$\Sigma_n^0$$ for some $$n\in\Bbb N$$). It can be shown that formulas provable in ACA0 which can be expressed in first-order arithmetic are precisely the formulas provable by Peano arithmetic (one says that ACA0 is conservative over Peano arithmetic for arithmetical sentences). Like before, it can be shown that ACA0 is a proper extension of WKL0, although the proof in this case is not as simple.

ACA0 is strong enough to prove all the statements required to work well with real (or complex) analysis, including Bolzano-Weierstrass theorem or full König's lemma (for trees on finite sequences of natural numbers) (in fact, ACA0 is provably equivalent to these two statements).

ACA0 has a proof-theoretic ordinal of ε₀.

### ATR0

This one stands for "arithmetical transfinite recursion". This system is ACA0 together with axiom schema stating, intuitively, that if we have countable well-ordering (coded in a certain way) and so called arithmetical functional, we can iterate application of this functional transfinitely by following the mentioned well-ordering. This means that certain set constructions can be accomplished by iterating a simple construction transfinite number of times.

Addition of this axiom schema makes it possible to build a theory of ordinal numbers in second-order arithmetic. An example of strength of this schema is that it's sufficient to prove the consistency of ACA0, which means that it is significantly stronger than ACA0 (see Gödel's incompleteness theorems).

Important single theorem which is equivalent (over RCA0) to ATR0 is that every two countable well-orderings are comparable, so that ordinal numbers form a linear order.

Another important schema equivalent to ATR0 is $$\Sigma^1_1$$-separation: given two $$\Sigma^1_1$$ sentences (see analytical hierarchy) with free variable $$n$$, never both true, there is a set which contains all $$n$$ which make first formula true, and none which make second one true.

The proof-theoretic ordinal of ATR0 is the Feferman–Schütte ordinal.

### $$\Pi_1^1\textrm{-CA}_0$$

The last, and the strongest system in the big five is RCA0 extended by $$\Pi_1^1$$ comprehension axiom schema, hence the abbreviation. This is so called impredicative system, because it's axioms, in a way, assert existence of objects which depend on the object defined (this is because defining set $$X$$ using $$\Pi_1^1$$ formula involves statement which is supposed to hold for all sets, including $$X$$ itself).

It's clear that $$\Pi_1^1\textrm{-CA}_0$$ contains all the axioms of ACA0, and it can be shown that it also proves all instances of ATR0 axioms, which shows that $$\Pi_1^1\textrm{-CA}_0$$ can build basic theory of ordinal numbers. However, as one can show, statement that given order is well-order is a $$\Pi_1^1$$ statement, which means that this last system can show existence of sets definitions of which explicitly use notions of well-ordering, which, in big part, is where the strength of the system comes from.

The proof-theoretic ordinal of $$\Pi_1^1\textrm{-CA}_0$$ is Ψ0ω) with respect to Buchholz's function[4].

### Other subsystems

Apart from the Big Five, many subsystems of Z2 have been characterized. Below is the list of more noteworthy ones.

1. RCA, WKL, etc. - these are extensions of corresponding systems RCA0, WKL0, etc. resulting by addition of first-order induction schema for all formulas in language of second-order arithmetic. The indicator of whether this full axiom schema appears in subsystem or not is the 0 in the subscript.
2. $$\Sigma_m^n\textrm{-IND}$$, $$\Pi_m^n\textrm{-IND}$$, $$\Delta_m^n\textrm{-IND}$$ - these are schemas of first-order induction limited to $$\Sigma_m^n$$, $$\Pi_m^n$$, $$\Delta_m^n$$ formulas respectively (here and below $$n$$ is 0 or 1, and the classes of formulae are with respect to the analytical hierarchy). Additionally, $$\Pi_\infty^1\textrm{-IND}$$ is conjunction of all of these schemas.
3. $$\Sigma_m^n\textrm{-TI}$$, $$\Pi_m^n\textrm{-TI}$$, $$\Delta_m^n\textrm{-TI}$$ - these are schemas of transfinite induction limited to formulas in respective classes. This means that for every formula $$\psi(n)$$ of respective complexity and any well-ordering of natural numbers (coded as some set $$X$$) we can prove $$\forall n:\psi(n)$$ by following this well-order. Like above, $$\Pi_\infty^1-TI$$ is conjunction of the above.
4. $$\Sigma_m^n\textrm{-CA}$$, $$\Pi_m^n\textrm{-CA}$$, $$\Delta_m^n\textrm{-CA}$$ - these are schemas of comprehension for respective classes of formulas. Their conjunction, $$\Pi_\infty^1\textrm{-CA}$$ - over a weak base system this is equivalent to all of Z2.
5. $$\textrm{BI}$$ - the axiom-schema of bar induction. To state it, we first need a notion of well-founded partial order. We say an ordering $$\prec$$ on natural numbers is well-founded if for every set $$X$$ the following is true: if for all $$((\forall i\prec j:i\in X)\Rightarrow j\in X)\Rightarrow\forall n:n\in X$$. BI states that such an implication is still true if we replace $$n\in X$$ by any formula $$\psi(n)$$, provided $$a\prec b$$ is expressible by an arithmetical formula.
6. $$\Sigma_m^n\textrm{-AC}$$, $$\Pi_m^n\textrm{-AC}$$, $$\Delta_m^n\textrm{-AC}$$ - these are schemas "adaptating" ZFC's axiom of choice to second-order arithmetic. They say that if for every $$n$$ there is a set $$X$$ such that $$\psi(n,X)$$ (of complexity asserted by the schema), then we can create sequence of sets $$X_n$$ such that $$\psi(n,X_n)$$. A variant of this schema is so called weak axiom of choice, which requires that for every $$n$$ there is precisely one $$X$$ making the formula true.
7. $$\Sigma_m^n\textrm{-DC}$$, $$\Pi_m^n\textrm{-DC}$$, $$\Delta_m^n\textrm{-DC}$$ - these schemas adapt to second-order arithmetic a weak form of the axiom of choice named "axiom of dependent choice". They say that if for every $$n,X$$ there is $$Y$$ such that $$\psi(n,X,Y)$$, then we can find sequence $$X_n$$ of sets such that $$\psi(n,X_n,X_{n+1})$$. Strong dependent choice tells us that the same can be done if we don't assume that such a $$Y$$ exists always, but $$\psi(n,X_n,X_{n+1})$$ has to hold whenever it exists for $$X_n$$.
8. $$\Sigma_m^n\textrm{-TR}$$, $$\Pi_m^n\textrm{-TR}$$, $$\Delta_m^n\textrm{-TR}$$ - these are extensions to arithmetical transfinite recursion to formulas other than arithmetical ones. As before, intuitively, it says that we can iterate certain constructions transfinitely many times.

Note that there are different ways of denoting subsystems of second-order arithmetic, including "$$(\Pi_1^1\textrm{-CA})$$" for $$\Pi_1^1\textrm{-CA}_0$$ augmented by induction for $$\mathcal L_2$$-formulae[5].

## Footnotes

1. It was classically formulated using a second-order logic with unary predicates for set variables, bu is interpreted into a $$2$$-sorted first-order logic in modern mathematics.[1] p. 2 [2] p.226 For details on relations between many-sorted logic and second-order logic, see Enderton[3] 4.4.

## Sources

1. S. Simpson Subsystems of Second-order Arithmetic (2009)
2. 田中一之, 数学基礎論序説 －数の体系への論理的アプローチ－, 裳華房, 2019.
3. H. Enderton, A Mathematical Introduction to Logic, Second Edition, Academic Press, 2000.
4. W. Buchholz, A new system of proof-theoretic ordinal functions (1984). Retrieved 2021-06-19.
5. M. Rathjen, Proof theory: From arithmetic to set theory (p.14). Retrieved 2021-06-19.


text:
PLONK is a SNARK (Succinct Non-interactive Argument of Knowledge) that can verify a computation done by an arithmetic circuit, meaning you might have a circuit $C$ that on input $x$ outputs $C(x) = y$, and a PLONK proof (generated by the prover) will convince another party (the verifier) that the prover knows $x$ such that $C(x)$ evaluates to $y$. Plookup is a new SNARK component that would allow some circuits to be encoded more efficiently by implementing a lookup table for a specified function. This removes the aspect of circuit complexity needed to compute the function, so the complexity of the SNARK depends only on the size of the function's domain.

With SNARKS, we're usually interested in the case where computing such an input $x$ from $C$ and $y$ is infeasible. Hash functions are a great example of where plookup could simplify circuits, shortening prover and verifier time as well as the proof sizes. Most hash functions that are considered secure were developed to be fast in computer architecture; some of them were developed to also perform well when implemented as software; either way, the prevailing paradigm is to work over binary strings. When encoded as ~256-bit field elements, this leads to either inefficient encodings (very large field elements representing very small strings) or a huge number of gates required (defining XOR for example using only addition and multiplication mod $p$ is possible, but it is one of the most complex functions to define in terms of arithmetic circuits).

Plookup could also allow recursive SNARKs without cycles by allowing arithmetic over different fields. Most of the elliptic curves used in SNARKs are defined over a field $\mathbb{Z}_{p}$ and each point is a pair of field elements (representing the $x$ and $y$ coordinates). We use these to create SNARKS for arithmetic circuits where the addition and multiplication gates compute the operations $\mod q$ where $q$ and $p$ are different primes. So the difficulty in recursively verifying SNARKs using elliptic curves (without cycles) largely comes from the difficulty in expressing addition and multiplication mod p using only addition and multiplication mod q. (Try if for yourself! How would you define addition mod 5 using only addition and multiplication mod 7. No "if" statements allowed.)

### Reviewing PLONK

Note: PLONK and Plookup use sequences in different ways. PLONK uses sequences of length $n$ to describe at most $n$ gates and the values of their input/output wires. Plookup uses sequences of length $n+d$ to describe $d$ queries to a lookup table with $n$ rows. Both of them use a (different) sequence of length $n$ as part of their grand product arguments.

PLONK breaks down circuit verification into a check that the input-output behavior of each gate is correct, which is a fairly simple constraint system. Each gate has a label $i \in { 1, 2, \ldots, n }$ and corresponds to the constraint equation

$$Q^L_i a_i + Q^R_i b_i +Q^M_i a_i b_i + Q_i^C = Q^O_i c_i .$$

where

• $a_i$ is the left input wire, $b_i$ is the right input wire, $c_i$ is the output wire
• if gate i is an addition gate then $Q^L_i = Q^R_i = Q^O_i = 1$, and $Q^M_i = Q^C_i = 0$
• if gate i is a multiplication gate then $Q^M_i = Q^O_i = 1$, and $Q^L_i = Q^R_i = Q^C_i = 0$
• if gate i is a constant gate (always outputting $C_i \in \mathbb{F}$) then $Q^C_i = C_i$, $Q^O_i = 1$, and $Q^L_i = Q^R_i = Q^M_i = 0$

so that the sequences $Q^L, Q^R, Q^M, Q^C, Q^O$ are "selector" sequences, selecting the gate type by making the irrelevant constraint terms zero.

For each sequence, we can define an interpolating polynomial that passes through the elements of the sequence i.e. for the sequence $(a_1, a_2, \ldots, a_n)$ we could define a polynomial $A(x)$ so that $A(x_1) = a_1$, $A(x_2) = a_2$, all the way through $A(x_n) = n$.
For efficiency, we choose a primitive nth root of unity, which we call ω, and then set $x_1 = \omega$, $x_2 = \omega^2$, and so on... From now on, when we talk about a polynomial interpolating a sequence, this is the construction we're referring to (but the math (mostly) checks out if it's easier to think of $x_1$ being 1, $x_2$ being 2, etc.).

Once we have these polynomials, we have a way to check (with overwhelming probability) that the constraints hold. We have polynomials interpolating or representing each selector sequence and each wire sequence and if they were defined for a valid circuit computation, then the constraint above takes the polynomial form

$$Q^L(\omega^i)A(\omega^i) + Q^R(\omega^i) B(\omega^i) +Q^M(\omega^i) A(\omega^i) B(\omega^i) + Q^C(\omega^i) = Q^O(\omega^i) C(\omega^i) .$$

Which only needs to hold on ${ \omega, \omega^2, \ldots , \omega^n }$. Subtracting $Q^O(\omega^i) C(\omega^i)$ from both sides, this is

$$Q^L(\omega^i)A(\omega^i) + Q^R(\omega^i) B(\omega^i) +Q^M(\omega^i) A(\omega^i) B(\omega^i) + Q^C(\omega^i) - Q^O(\omega^i) C(\omega^i)= 0$$

so we check that the left-hand side is divisible by the nonzero polynomial of minimal degree that vanishes (evaluates to zero) on ${ \omega, \omega^2, \ldots , \omega^n }$.

So now we know that the output of each gate matches the expected behavior with the given inputs. But at this stage the gates are totally disconnected from each other. To ensure the gates are connected correctly, we create a copy constraint in the form of a permutation in the following way:

1. First, wires that are supposed to take the same value (usually when the output wire of one gate is also the input wire of another gate) are grouped together into disjoint blocks. For example, if an output wire with index $x_{c1}$ feeds into other gates as input wires with indices $x_{a2}, x_{a3}, x_{b3}$ for example, then the corresponding block is ${ x_{c1}, x_{a2}, x_{a3}, x_{b3} }$. (To be abundantly clear on notation here, in this section $x_{ai}$ means "the index of the left wire of gate i" whereas $a_i$ or $w_{ai}$ would refer to "the value that that wire takes")

2. Then we create a permutation $\sigma$ that cycles each block. So $\sigma$ would permute $\sigma (x_{c1}) = x_{a2}$, $\sigma (x_{a2}) = x_{a3}$, $\sigma (x_{a3}) = x_{b3}$, $\sigma (x_{b3}) = x_{c1}$.

Then to check that the gates are wired together correctly, we only need to check that $(a_1, \ldots, a_n, b1, \ldots, b_n, c_1, \ldots, c_n) = (w_{\sigma(x_{a1})}, \ldots, w_{\sigma(x_{an})}, w_{\sigma(x_{b1})}, \ldots, w_{\sigma(x_{bn})}, w_{\sigma(x_{c1})}, \ldots, w_{\sigma(x_{cn})})$. The key to the permutation check is a "grand product" that can be checked as it's built up iteratively but ultimately encodes the sequence elements and their order in such a way that a sequence and $\sigma$ applied to that sequence will be represented by the same product.

### PLONK's Permutation Argument

For two sequences of length n, $(f_1, f_2, \ldots, f_n)$ and $(g_1, g_2, \ldots, g_n)$, the prover wants to convince the verifier that $g_i = f_{\sigma(i)}$ for $1 \leq i \leq n$ for a permutation $\sigma$ that is known to both parties. This is done in a roundabout way partly to make it more amenable to succinct verification, but also to allow zero knowledge. We'll describe the protocol here in terms of sequences, but the protocol will actually use polynomials $\hat{f}$ and $\hat{g}$ that interpolate the two sequences.

It proceeds as follows:

1. The verifier sends random β, γ ∈ 𝔽 to the prover.
2. The prover constructs two new sequences $(\mathbf{f}_1, \mathbf{f}_2, \ldots, \mathbf{f}_n)$ and $(\mathbf{g}_1, \mathbf{g}_2, \ldots, \mathbf{g}_n)$ where

$$\mathbf{f}_i = f_i + \beta \cdot i + \gamma$$

$$\mathbf{g}_i = g_i + \beta \cdot \sigma(i) + \gamma$$

1. The prover then sends a [polynomial interpolating a] sequence defined recursively as

$$s_0 = 1$$

$$s_i = s_{i-1} \cdot \frac{\mathbf{f_i}}{\mathbf{g_i}}$$

This is the "grand product" in our grand product argument, where the name comes from the fact that this recursion is equivalently defined as

$$s_i = \frac{\prod_{1 \leq j \leq i} \ \mathbf{f_j} }{\prod_{1 \leq j \leq i} \ \mathbf{g_j} }$$

1. The verifier checks that the following equations hold on the set ${ \omega, \omega^2, \ldots, \omega^n }$ (the set we used to define the interpolation of the sequences)

$$\hat{s}(\omega^n) = s_0 = 1$$

$$\hat{s}(\omega^i) \cdot \mathbf{g}_i = \hat{s}(\omega^{i-1}) \cdot \mathbf{f}_i$$

where $\hat{s}$ is the polynomial that interpolates the sequence $s$ defined above. If these equations hold, then the verifier is convinced that $g_i = f_{\sigma(i)}$ for $1 \leq i \leq n$.

An informal argument as to why the verifier is convinced works backwards from n to 1. Looking at the grand product defining $s_i$, the term $s_n$ should be 1 if $g_i = f_{\sigma(i)}$ for all i because the numerator and denominator are a product of exactly the same terms. Assume $g_i = f_{\sigma(i)}$ for a particular i. Then

$$\mathbf{g_i} = g_i + \beta \cdot \sigma(i) + \gamma$$

$$= f_{\sigma(i)} + \beta \cdot \sigma(i) + \gamma = \mathbf{f}_{\sigma(i)}$$

so each term in the denominator also appears in the numerator.

This alone isn't particularly convincing (a dishonest prover could say $s_n =1$ regardless of whether $(f_1, f_2, \ldots, f_n)$ and $(g_1, g_2, \ldots, g_n)$ are related by the permutation), which is why the verifier also checks that
$\hat{s}(\omega^i) \cdot \mathbf{g}_i = \hat{s}(\omega^{i-1}) \cdot \mathbf{f}_i$ for $i = n$, and for $i = n-1, \ n-2, \ \ldots, \ 1$.

### PLONK vs Plookup

Both PLONK and Plookup rely on a "Grand Product" argument to verify two sequences of length n are permutations of each other. In PLONK, this grand product is the backbone of the permutation check for checking that wires are connected correctly, it checks that polynomials f(x) and g(x) interpolate sequences $(f_1, f_2, \ldots f_n)$ and $(g_1, g_2, \ldots, g_n)$ where some (known) permutation $\sigma$ re-arranges $(f_1, f_2, \ldots f_n)$ into $(g_1, g_2, \ldots, g_n)$. In Plookup, it checks that a sequence $(s_1, s_2, \ldots, s_{n+d})$ is the "gluing together" of two sequences $(f_1, f_2, \ldots f_n)$ and $(t_1, t_2, \ldots, t_d)$ which has then been re-arranged to be "in order" (also by looking at the polynomials which interpolate them) with the important additional condition that every value that $f_i$ takes appears somewhere in the sequence $(t_1, t_2, \ldots, t_d)$. So we can check each function evaluation to look up by compressing a tuple (input_i, output_i) into a single field element $f_i$ and then checking that the lookup values $(f_1, f_2, \ldots f_n)$ actually appear in our table $(t_1, t_2, \ldots, t_d)$ containing all the valid compressed input-output pairs.

### Randomized differences

Sequences and subsequences are different from sets, for example an element can appear more than once in a sequence but not a set, and the order in which elements are listed matters, but the notion of subsequence that we will use more closely resembles the notion of a subset. We say that a sequence $A = (a_1, a_2, \ldots a_m)$ is a subsequence of $B = (b_1, b_2, \ldots b_n)$ if

• every element that appears in $A$ appears in $B$ (and not more often in $A$ than in $B$)
• in the same order as they do in $B$.

So for example (1, 2, 2, 3) is a subsequence of (1, 1, 2, 2, 3, 3, 4, 4, 2) and (1, 2, 3, 2) is as well. However, (3, 3, 3) and (1, 2, 4, 3) would not be subsequences. As a visual, (b,c,f,i,k) is a subsequence of (a,b,c,d,e,f,g,h,i,j,k) because they can be lined up like so...

 . b c . . f . . i . k ...

 a b c d e f g h i j k ...

Plookup introduces the notion of "randomized differences" as a necessary condition for two sequences to be the same. (As with many definitions SNARKs are based on, a randomly chosen instantiation of the converse is true with high probability.) The difference set of a sequence $(f_1, f_2, \ldots, f_n)$ is the set {$f_2 -f_1, \ f_3 -f_2, \ \ldots, \ f_n - f_{n-1}$}. (This is using our usual definition of a set, so order and multiplicity are ignored.) For example, the sequence (1, 4, 8) has a difference set of {3, 4}. The idea would be that we could recognize that (1, 4, 8) is a subsequence of (1, 1, 4, 8, 8, 8) because its difference set is {0, 3, 4}, which is the same up to a zero representing repeated elements. However, it isn't hard to come up with another sequence with the same difference set, like (1, 1, 5, 5, 8, 8). For this reason, Plookup instead uses a "randomized difference set" consisting of elements of the form $f_i + \beta \cdot f_{i+1}$ for a random $\beta \in \mathbb{F}$.

### The Protocol

The protocol as defined is fairly simple to outline. First it reduces the problem for functions to a problem with sequences. If we have a function $f$ that takes two arguments then we can think of our lookup table as consisting of the triples $(x, y, z)$ such that $f(x,y) = z$. The verifier then sends a random $\alpha \in \mathbb{F}$ to the prover, and they both compute a new set consisting only of field elements as {$\alpha x + \alpha^2 y + \alpha^3 z \ : \ f(x,y) = z$}.

Now that we've compiled the lookup table to a lookup set, we can work with sequences of field elements. The verifier sends random $\beta, \gamma \in \mathbb{F}$ to the prover, who computes a polynomial Z defined by the recurrence

$$Z(g) = 1$$

$$Z(g^{i+1}) = Z(g^i) \cdot \frac{(1+\beta)(\gamma +f_i)(\gamma(1+\beta) +t_i + \beta t_{i+1})}{(\gamma (1+\beta)+s_i +\beta s_{i+1})(\gamma(1+\beta)+s_{n+i} + \beta s_{n+i+1})}$$

$$Z(g^{n+1}) = 1$$

and then the verifier checks that the polynomial is indeed of that form, as they did in PLONK's permutation check.

The correctness comes from an application of the Schwartz-Zippel lemma, which informally says that when two polynomials (univariate or multivariate) are distinct and you choose a random point (in 𝔽) to evaluate them at, it's likely (think probability 1 - 1/2256 here) that they will differ at that point.

So let's revisit the protocol. Really, the prover is asked to compute a recursive sequence, the polynomial is computed as an interpolation.

$$z_1 = 1$$

$$z_{i+1} = z_i \cdot \frac{(1+\beta)(\gamma +f_i)(\gamma(1+\beta) +t_i + \beta t_{i+1})}{(\gamma (1+\beta)+s_i +\beta s_{i+1})(\gamma(1+\beta)+s_{n+i} + \beta s_{n+i+1})}$$

Which gives a closed form

$$z_{i} = \frac{\prod_{1 \leq j<i}(1+\beta)(\gamma +f_i)(\gamma(1+\beta) +t_i + \beta t_{i+1})}{\prod_{1 \leq j < i}(\gamma (1+\beta)+s_i +\beta s_{i+1})(\gamma(1+\beta)+s_{n+i} + \beta s_{n+i+1})}$$

So $z_{n+1}$ is the quotient $\dfrac{F(\beta, \gamma)}{G(\beta, \gamma)}$ which is 1 if and only if all entries $f_i$ are in the lookup table $(t_1, t_2, \ldots , t_n)$.

### Polynomials in several variables

The notation $\mathbb{F}[x]$ denotes the set of polynomials in one variable (which you may remember from high school) but the $\mathbb{F}[x]$ indicates that the arithmetic of the coefficients is done in the field $\mathbb{F}$. We're hoping you intuitively know what is and isn't a polynomial with one variable, but in order to extend the definition to polynomials for multiple variables, we lay out the following (less intuitive) rules that define what a polynomial is.

• Every element of $\mathbb{F}$ is a polynomial (called a constant polynomial)
• The "variable" (more formally called an indeterminate) $x$ is a polynomial
• The product of two polynomials is a polynomial
• so $x^n$ is a polynomial for any positive integer n because $x^n = x \cdot x^{n-1}$, $x$ is a polynomial, and $x^{n-1}$ is a polynomial because $x^{n-1} = x \cdot x^{n-2}$...
• then we also have that $\alpha x^n$ is a polynomial for any $\alpha \in \mathbb{F}$
• The sum of two polynomials is a polynomial
• from here we get all of the polynomials with more than one term, i.e. everything of the form $a_n x^n + \ldots + a_1 x + a_0$
• this does not allow an infinite series, though!
• Nothing else is a polynomial in $\mathbb{F}[x]$
• No quotients, no exponential functions, no non-integer exponents, etc.

That's probably not the definition of a polynomial that you learned in school, but hopefully it's clear that it is equivalent.
To extend the definition to multiple variables (the polynomials in $\mathbb{F}[x,y,z]$ should be sufficient for our blog post), we add new rules

• The "variables" $x$, $y$, and $z$ are all polynomials
• The multiplication of $x$, $y$, and $z$ is commutative. That is, $xy = yx$, $yz = zy$, and $xz = zx$
• This allows us to simplify expressions like $(x+2y)(x+3y) = x^2 + 2yx + 3xy + 6y^2$ to be simplified to $(x+2y)(x+3y) = x^2 + 5xy + 6y^2$.
• This may seem obvious, but remember that some "multiplication" operations, like matrix multiplication, are not commutative.

These sets of polynomials have a very important property: unique factorization. Similar to how each integer can be factored uniquely (up to factors of $\pm1$) into a product of primes, each polynomial can be factored uniquely (up to an element of $\mathbb{F}$) into irreducible polynomials. This gives us a sufficient condition for two polynomials to be different: if they have a different factorization, they're different polynomials. This next theorem is the key to making plookup work.

### Plookup's main theorem

For sequences $(f_i)$i∈[n], $(t_i)$i∈[d], and $(s_i)$i∈[n+d]

• {$f_i : i \in [n]$} $\subseteq$ {$t_i : i \in [d]$}
• $s = (f, t)$, re-arranged to be "ordered by $t$"

if and only if $F \equiv G$ where

$$F(\beta, \gamma) := \prod_{i \in [n]} \Big( (1 + \beta) (\gamma + f_i) \Big) \cdot \prod_{i \in [d-1]} \Big( \gamma (1 + \beta) + t_i + \beta t_{i+1} \Big)$$

$$G(\beta, \gamma) := \prod_{i \in [n+d-1]} (\gamma (1 + \beta) + s_i + \beta s_{i+1})$$

To see this, break up the terms of the product defining $G$ into cases where $s_i = s_{i+1}$ (so it can be written as $(1+\beta)(\gamma+s_i)$)
and cases where $s_i = s_{i+1}$. For simplicity, we can assume that $( t_i )_{i \in [d]}$ has no repeated values.

### Tying it together

In the plookup protocol, we saw each of the factors of $F(\beta, \gamma)$ as part of the numerator in a sequence of fractions, and $G(\beta, \gamma)$ as part of the denominator.

The key idea behind PLONK's permutation check and Plookup is that if we encode every element (along with some information about where it falls in the sequence) uniquely as an irreducible polynomial, then we can check two sets are equal even if the elements aren't listed in the same order by multiplying all of the irreducible polynomials encoding elements. With notation, this means that if there is a polynomial $\mathbf{f}_i(x,y)$ that encodes each sequence element $f_i$ and a polynomial $\mathbf{g}_i(x,y)$ that encodes each sequence element $g_i$, then

$$\prod_{1 \leq i \leq n} \mathbf{f_i}(x,y) = \prod_{1 \leq i \leq n} \mathbf{g_i}(x,y)$$

if and only if the sequences $(f_1, f_2, \ldots, f_n)$ and $(g_1, g_2, \ldots, g_3)$ have the same elements, in a different order. In PLONK, these irreducible factors also encode information about the specific permutation; In plookup, they encode information about how sequence elements relate to neighboring elements. From there, the product argument is the same. So I hope this blog post imparts (beyond just an understanding of how PLONK and plookup work) an appreciation for how the "tools of the trade" can be used in SNARKS in different ways.

Written by Nat Bunner, zero-knowledge cryptography researcher & protocol developer at Metastate.

Image credits: American pika (Ochotona princeps) from Wikimedia.

Metastate has ceased its activities on the 31st of January 2021. The team members have joined a new company and working on a new project. If you're interested in zero-knowledge cryptography and cutting-edge cryptographic protocols engineering positions in Rust, check out the open positions at Heliax.

If you have any feedback or questions on this article, please do not hesitate to contact us: hello@heliax.dev.


text:
### Thread: Copy files from SMB using Win32

1. No Profile Picture
Contributing User
Devshed Newbie (0 - 499 posts)

Join Date
Jun 2005
Posts
227
Rep Power
0

#### Copy files from SMB using Win32

HI, I'm trying to copy files from "\\ip\folder\file.txt" to "c:\file.txt".

I do not want to use any high-level APIs, not even from MS. I want to keep it to the lowest abstraction level possible at Win32 API.

Sincerely,
speedbooster
2. If you are copying from a network drive, as appears to be the case, then you will have to be authenticated which means you have to work through APIs (unless you want to attempt to recreate teh arcane crypto framework used to talk to the remote drive), almost certainly OS dependent APIs (meaning even if they are third-party, they are running in kernel space). I would be suprised if you get much help here, we tend to focus on ANSI programming. Also, for all practical purposes, what you are asking is language independent. Devshed should have some forums better suited for your question.
3. No Profile Picture
Contributing User
Devshed Newbie (0 - 499 posts)

Join Date
Jun 2005
Posts
227
Rep Power
0

anyways, i have opened the connection and mapped the network share with correct login to z: drive. I need to copy files now. Looking for function. i don't want to use system()
4. No Profile Picture
Contributing User
Devshed Newbie (0 - 499 posts)

Join Date
Jun 2005
Posts
227
Rep Power
0
who the heck's void pointer?!

I know what I am talking about over here !! I'm an old member, though not much active.
5. Right, so you should realize that he is commenting on Nancy's useless post.
6. Originally Posted by speedbooster

anyways, i have opened the connection and mapped the network share with correct login to z: drive. I need to copy files now. Looking for function. i don't want to use system()
Use CopyFile() or CopyFileEx() perhaps.
7. No Profile Picture
Contributing User
Devshed Newbie (0 - 499 posts)

Join Date
Jun 2005
Posts
227
Rep Power
0
Oh, thanks mitakeet.
@scorpion4ever, yeah i m doing that now. thanks a lot : )
8. No Profile Picture
Contributing User
Devshed Newbie (0 - 499 posts)

Join Date
Jun 2005
Posts
227
Rep Power
0
i have a question actually. When i open \\ip in the start menu or 'run' in xp, it doesn't 'map' the network path to a drive, but i can still use it. explorer shows '\\ip\path\to\directory\whatever\' in address bar.

'net use' command also shows a 'connection??'
How come I'm using the resource without mapping?

Is it possible to do with win32 as well? Like with CopyFile ? With CopyFile(), I am currently 'mapping' the path to a drive and then copying. But I'd like something like I've mentioned to be done in my C++ program.
9. If you look at the docs, it says that CopyFile() can also accept "\\ip\path\to\directory\whatever\" type strings.
10. No Profile Picture
Contributing User
Devshed Newbie (0 - 499 posts)

Join Date
Jun 2005
Posts
227
Rep Power
0
hmmm, i think it was returning 66 or 85 error. Perhaps i need to kill all SMB connections with net command ....

Anyways, I got another problem. I'm trying to launch Internet explorer and open a page in it. Its working, but the ExecWB function in IWebBrowser2 is giving access violations.

Code:
Unhandled exception at 0x7338C9F1 in file.exe: 0xC0000005: Access violation executing location: 0x00000000
It goes away if I remove the line. The line is:
Code:
pWBApp->ExecWB(OLECMDID_SAVE, OLECMDEXECOPT_DODEFAULT, NULL, NULL);

// i also tried

pWBApp->ExecWB(OLECMDID_NEW, OLECMDEXECOPT_DODEFAULT, NULL, NULL);
Reference: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
11. > Access violation executing location: 0x00000000
You tried to call NULL!

> pWBApp->ExecWB(OLECMDID_SAVE, OLECMDEXECOPT_DODEFAULT, NULL, NULL);
It would seem that the ExecWB member is not set up at all.

> It goes away if I remove the line.
Actually, I would recommend you get familiar with using the debugger.

Find out where ExecWB "should" have been initialised, and put a breakpoint on it. Investigate WHY it isn't being set up - did you miss an init call somewhere - read the documentation.

Random hacking of adding and commenting out lines of code is voodoo programming

> hmmm, i think it was returning 66 or 85 error.
Don't think - KNOW!
Trust me, you'll find yourself rapidly shunned if we spend effort looking into those two values, and you show up tomorrow saying "sorry, my bad - it was 42".
12. No Profile Picture
Contributing User
Devshed Newbie (0 - 499 posts)

Join Date
Jun 2005
Posts
227
Rep Power
0
i was getting both 66 and 85, trying different things. But i got it to work anyhow.

you think i didn't read the docs before asking? Here is the 'extensive' documentation from MS:

http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
13. I'm confused....
I do not want to use any high-level APIs, not even from MS. I want to keep it to the lowest abstraction level possible at Win32 API.
IWebBrowser2 et al seem anything but the lowest level API's.

You'd be surprised how often it turns out to be true.
Kudos to you for being exceptional.
14. No Profile Picture
Contributing User
Devshed Newbie (0 - 499 posts)

Join Date
Jun 2005
Posts
227
Rep Power
0
thanks, well.... the lowest i could compromise was the IWB2 interface.... I would've gone to TCP/IP but the firewall pop-ups are unreasonable.

btw, im lazy when it comes to creating new posts. I could search for hours on google, but creating a 'New Thread' is usually a hassle for me : D

So, any idea on the problem? One guy on MSDN forum suggests pWBApp is NULL, I tried
> if (pWBApp == nullptr)
and it returns false.

and i did add breakpoints, although there's little point of it because there is nothing like 'initializing' the ExecWB()
Last edited by speedbooster; January 10th, 2013 at 01:46 PM.
15. No Profile Picture
Contributing User
Devshed Newbie (0 - 499 posts)

Join Date
Jun 2005
Posts
227
Rep Power
0
i was wondering, is there any way to evaluate a method for nullity?

> if (pWBApp->ExecWB())

won't compile, asking for arguments. If I put in the arguments, its the same story.....


text:
Lab 4 Exploratory data analysis

In our previous session we learned about wrangling data in R by implementing useful function such as filter(), select(), and mutate(). In this session we will focus on descriptive statistics. This includes the exploration and description of quantitative data.

4.1 Getting started

We will continue working on the same project and dataset that you created in the last lab on R Studio Cloud. Please follow the next steps:

1. Go to your ‘Quants lab group’ in RStudio Cloud.
2. Open the project called ‘NILT’ located in your lab group’.
3. Continue working at the bottom of the ‘Exploratory analysis’ script that you created in the last lab.
4. Load nilt dataset that you created in the last session using the following code:
# Load the data from the .rds file we created in the last lab
nilt <- readRDS("data/nilt_r_object.rds")
1. Create a subset of the nilt data keeping only few variables using the select() function as shown below:
#Subset
nilt_subset <- select(nilt, rsex, rage, highqual, religcat, uninatid,  ruhappy, rhourswk, persinc2)

4.2 Exploratory analysis

4.2.1 Data overview

Are your summary statistics hiding something interesting?

To start exploring our data it essential to distinguish the adequate tools and measures available for the type of data in question. As you know now, there are two broad types: (1) categorical and (2) numeric.

There are several ways in which we can summarise our data. Today, we will use a useful package called vtable. Install it in your session running the following line from your console:

install.packages('vtable')

Once it is installed, make sure to load it with the next line. This time copy and paste it in your R script, so you can run it every time you restart your session.

library(vtable)

4.2.2 Categorical data

A usual way to explore the categorical data is using contingency and proportion tables. The contingency tables include the count for each category while the proportion tables contain the count divided by the total number of observations.

Try to focus on the interpretation of the outputs in the following section. At this time, it is just optional to run the code shown.

Let’s say we are interested in the data’s break down by respondents’ sex (called rsex in the dataset). We will use function sumtable() of the vtable package to produce a contingency table for a single variable (known as One-Way contingency table).

sumtable(nilt_subset, vars = c('rsex'))
Table 4.1: Summary Statistics
Variable N Percent
rsex 1204
… Male 537 44.6%
… Female 667 55.4%

From the result, we see that there are more female respondents than males.

Specifically, we see that males respondents represent 44.6% of the total sample, whereas females 55.4%.

We can do this with any type of categorical variable. Let’s see how the sample is split by religion (religcat). So, we will add it to in the vars argument.

sumtable(nilt_subset, vars = c('rsex', 'religcat'))
Table 4.2: Summary Statistics
Variable N Percent
rsex 1204
… Male 537 44.6%
… Female 667 55.4%
religcat 1168
… Catholic 491 42%
… Protestant 497 42.6%
… No religion 180 15.4%

As you can see, about the same number of people are identified as being catholic or protestant, and a relatively small number with no religion.

What if we want to know the religious affiliation break-down by males and females. This is where Two-Way contingency tables are useful and very common in quantitative research. To produce it, we have to specify the group argument in the sumtable function as following:

sumtable(nilt_subset, vars = c('religcat'), group = 'rsex')
Table 4.3: Summary Statistics
rsex
Male
Female
Variable N Percent N Percent
religcat 520 648
… Catholic 209 40.2% 282 43.5%
… Protestant 211 40.6% 286 44.1%
… No religion 100 19.2% 80 12.3%

There are some interesting results from this table. You can see that there are proportionally more female respondents who are either Catholic or Protestant than males, namely 43.5% vs 40.2% and 44.1% vs 40.6%, respectively. We also see that there are almost 20% of male respondents who do not self-identify with a religion which contrast to the 12% of female participants.

4.2.3 Activity 1

From your R Studio Cloud script, do the following activities using the data in the nilt_subset object (feel free to copy and adapt the code shown above):

• Create a One-Way contingency table for uninatid in the nilt_subset dataset using the sumtable() function;
• Using the variables religcat and uninatid, generate a Two-Way contingency table;

4.2.4 Continuous (numeric) data

In the previous section we’ve learnt how to summarise categorical data. But very often we want to work with continuous numeric variables or a combination of both. To summarise and understand numeric data there are two main types: measures of centrality and measures of spread.

As before, try to focus on the interpretation of the outputs in the following section. At this time, it is just optional to run the code shown.

4.2.4.1 Measures of centrality

In quantitative research, we usually have access to many observations in a sample which contains different attributes for each of them. It would be difficult (and probably not very useful) to talk about each of the NILT respondents one by one. Instead, to describe this sample we need measures that roughly represent all participants.

This is actually an important step in quantitative research, since it allows us to characterise the people that we are studying. For example, in the previous section we only talked about the respondents’ sex and political affiliation, but who are the people we are talking about? Probably a place to start digging deeper is to know their age. The first tool that we will use to understand numeric values is a histogram. Let’s see how the age of NILT respondents is distributed.

hist(nilt_subset$rage) This plot show us on the X axis (horizontal) the age and the frequency on the Y axis. We can see that the youngest age in the sample is somewhere close to 20, and the oldest is almost 100. We also observe that the total number of observations (represented by the frequency on the vertical axis) for extreme values (close to 20 on the left-hand side and 100 on the right-hand side), tends to be lower than the values in the centre of the plot (somewhere between 30 and 45). For instance, we can see that there are approximately 120 respondents who are around 40 years old, that seems to be the most popular/frequent age in our sample. Now, we can represent these central values with actual measures, typically mean or median. The median is the mid-point value in a numeric series. If you sort the values and split it by half, the value right in the middle is the median. Luckily there is a function ready to be used called… You guessed it - median(). median(nilt_subset$rage, na.rm = TRUE)
## [1] 48

The median age is 48, that means that 50% (or half) of the respondents are equal or younger than this, and the other 50% is equal or older.5

To compute the mean manually, we need to sum all our values and divide it by the total number of the observations as follows: $mean =\frac{ x_1 + x_2 + x_3 ...+x_n } {n}$ The formula above is for you to know that this measure considers the magnitude of all values included in the numeric series. Therefore, the average is sensitive to extreme numbers (e.g. a very very old person). To compute the mean you need the mean() function.

mean(nilt_subset$rage, na.rm = T) ## [1] 49.61532 As you can see, the above measures try to approximate values that fall somewhere in the centre of the histogram plot, and represent all observations in the sample. They tell different things and are sometimes more (or less) suitable in a specific situation. 4.2.4.2 Measures of spread By contrast, there are measures that helps us to describe how far away a series of numeric values are from the centre. The common measures of spread are quartiles, variance and standard deviation. The quartiles are very useful to quickly see how numeric data is distributed. Imagine that we sort all ages in the sample and split it in four equal parts. The first quartile includes the lowest 25% values, the second the other 25%, the third other other 25%, and the fourth the highest 25%. To compute quartiles we can use the quantile function. quantile(nilt_subset$rage, na.rm = T)
##   0%  25%  50%  75% 100%
##   18   35   48   64   97

In our sample, the youngest quarter of the respondents is between 18 and 35 years old. The second quarter is between 35 and 48 years old. The next quartile is between 48 and 64. The oldest 25% of the respondents is between 64 and 97.

The variance is useful to obtain a singe measure of spread (instead of four values, as the above) taking the mean as a reference. This is given by the following formula:

$var = \frac{ \sum(x - \bar{x})^2 }{n-1 }$

To decipher the formula above, the $$\bar{x}$$ represents the mean, the $$x$$ represents each of the values in the numeric series. The formula takes each of the $$x$$ values and subtract it from the mean $$\bar{x}$$. Later, it squares the result of the subtraction (that is multiply it by itself). This is done to obtain a positive value, since some numbers in the series will be lower than the mean (resulting in negative values). Then, we sum all of them and divide the sum by the size/length of the numeric sequence $$n$$ minus 1. To estimate the variance in R we only need the var() function.

var(nilt_subset$rage, na.rm = T) ## [1] 343.3486 As you can see, the result is not very intuitive. That is because we squared the subtraction. Luckily, there is a measure that put it in readable scale. This is the standard deviation. In essence this takes the square root of the variance (the reversed operation of squaring it): $sd=\sqrt{var}$ To compute it in R, use the sd() function. sd(nilt_subset$rage, na.rm = T)
## [1] 18.52967

This measure is more human readable than the variance. Don’t worry too much about the formula. An important thing to remember is what the measure represents. An informal definition of the standard deviation is the average distance from the mean. In essence, it tell us how far the values in our data are from the mean.

4.2.5 Putting it all together

Phew, that was a lot!…

… Luckily we can use the sumtable function to compute all these measures at the same time!

It is very simple. You can compute a quick summary for age as following:

sumtable(nilt_subset, vars = c('rage'))
Table 4.4: Summary Statistics
Variable N Mean Std. Dev. Min Pctl. 25 Pctl. 75 Max
rage 1201 49.615 18.53 18 35 64 97

The result displays the number of observations used (N), the mean, the standard deviation, minimum, the 1st (same as ‘Pctl. 25’) and 3rd quartile (same as ‘Pctl. 75’), as well as the maximum (i.e., eldest respondent).

4.2.5.1 Categorical and numeric data

Lastly, there will be times in which you will need to compute a summary combining categorical and numeric data, to compare groups for example. The good news is that we can use exactly the same function and syntax to do this. Let’s take the following example to compute the summary of the respondent’s age (rage) by gender:

sumtable(nilt_subset, vars = c('rage'), group = 'rsex')
Table 4.5: Summary Statistics
rsex
Male
Female
Variable N Mean SD N Mean SD
rage 535 50.705 18.309 666 48.74 18.673

In the code above, we are simple specifying the variable rage and grouping the summary by rsex. This produces a small summary included the number of observations in each category an the main measure of centrality and spread, namely the mean and the std. dev.

4.2.6 Activity 2

Using the data in the nilt_subset dataset, complete the following activities. This will be a good practice run for doing the research report when you run your own analysis on the NILT teaching dataset. Handy!
• Using the hist() function plot a histogram of personal income persinc2. From the NILT documentation this variable refers to annual personal income in £ before taxes and other deductions (use the \$ symbol after the name of the dataset and then the name of the variable inside the function);
• Create a summary of the personal income persinc2 variable, using the sumtable() function;
• Finally, compute the mean and standard deviation of the personal income persinc2, grouped by happiness ruhappy. What do you observe?
1. Note that the argument na.rm equal TRUE is used in the function. The ‘na’ bit refers to missing values, and the ‘rm’ refers to remove. So we are telling R to remove the missing values when computing the median. This is because we do not know the age of 3 of the respondents in the sample.↩


text:
Foliations and separation of variables
Structure transverse des feuilletages, Astérisque no. 116  (1984), p. 214-221
@incollection{AST_1984__116__214_0,
author = {Sacksteder, Richard},
title = {Foliations and separation of variables},
booktitle = {Structure transverse des feuilletages},
author = {Collectif},
series = {Ast\'erisque},
publisher = {Soci\'et\'e math\'ematique de France},
number = {116},
year = {1984},
pages = {214-221},
zbl = {0553.58037},
mrnumber = {755172},
language = {en},
url = {http://www.numdam.org/item/AST_1984__116__214_0}
}

Sacksteder, Richard. Foliations and separation of variables, in Structure transverse des feuilletages, Astérisque, no. 116 (1984), pp. 214-221. http://www.numdam.org/item/AST_1984__116__214_0/

[1] Tom H. Koornwinder, Review of reference 3 below. Bulletin of the American Mathematical Society, New. Series, vol. 1 (1979), pp. 1014-1019. | MR 1567202

[2] Tom H. Koornwinder, "A precise definition of separation of variables", In Geometrical approaches to differential equations, Lecture Notes in Mathematics, vol. 810 (1980), pp. 240-263. | Article | MR 589212 | Zbl 0459.35005

[3] Willard Miller Jr. , Symmetry and Separation of variables, Addison-Wesley Publishing Company, (1977). | MR 460751 | Zbl 0368.35002

[4] P. M. Morse and H. Feshbach, Methods of theoretical physics, Mc Graw-Hill, (1953). | MR 59774 | Zbl 0051.40603